huruji / blog

红日初升,其道大光:sun_with_face::house_with_garden:请star或watch,不要fork
https://juejin.im/user/5894886f2f301e00693a3e49/posts
158 stars 11 forks source link

NumPy初步使用 #44

Open huruji opened 6 years ago

huruji commented 6 years ago

创建ndarray对象:


import numpy as np

np.array([1,2,3,4])
np.array([[1,2,3,4],[5,6,7,8]])

转换为list


np.array([1,2,3,4]).tolist()

获取ndarray对象的基本信息:维数(ndim)、行列信息(shape)、数据存储类型(dtype)


arr = np.array([[1,2,3,4],[5,6,7,8]])

print(arr.ndim)

print(arr.shape)

print(arr.dtype)

设置数据存储类型


np.array([1,2,3,4], dtype=np.int32)

np.arrat([1.2,1.3,1.4], dtype=np.float64)

创建特殊ndarray对象:全0(zeros)、全1(ones)、随机值(empty),参数是形状


np.zeros(8)

np.ones((2,3))

np.empty((3,4))

指定范围创建ndarray对象(arange)


arr1 = np.arange(1,8,2)

# [1 3 5 7]

创建网格数据(linspace)


np.linspace(0, 80, 5)

# [0 20 40 60 80]

修改形状(reshape)


np.arange(0,12).reshape((3,4))

# [[ 0,  1,  2,  3],
#  [ 4,  5,  6,  7],
#  [ 8,  9, 10, 11]]

展平,转化为一维数组(flatten)


a = np.arange(12).shape(3,4)

a.flatten()

矩阵转置(transpose)


a = np.arange(12).reshape(3,4)

a.transpose()

# 等同于

a.T

数学运算(+ - * / )、点乘(矩阵乘法)、三角函数


a = np.arange(12).reshape(3,4)

b = np.arange(12).reshape(4,3)

a + 1

a + b 

a - 1

a - b

a * 2

a * b

a / 2

a / b

# 平方
arr ** 2

# 点乘
np.dot(a, b)
a.dot(b)

np.sin(a)

深浅复制,赋值操作为浅复制,使用clone方法深复制:


a = np.arange(12)

b = a

c = a.clone()