# 定义
array = np.array([[1,2,3],[2,3,4]])print(array)# 维度, shape, 元素个数print("number of dim:", array.ndim)print("shape:", array.shape)print("size:", array.size)print("------------------------")# 类型int(32/64) float(32/64)
a = np.array([[2,23,4],[2,32,4]], dtype=np.int64)print(a.dtype)# 其它初始化的方式
a = np.zeros((3,4), dtype=np.float)
b = np.ones((3,4),int)
c = np.empty((3,4))
d = np.arange(1,10,1)#左闭右开区间print(a,"----\n", b,"=====\n", c,".....\n", d)# 有序;改变shape
e = np.arange(12).reshape(3,4)# e = np.arange(12)# e = e.reshape(3, 4)print(e)#### 线段
a = np.linspace(1,10,6).reshape((2,3))print(a)
2. numpy基础运算1
# 元组逐个相+,-,*,/
a = np.array([10,20,30,40])
b = np.arange(1,5)print(a, b)
c = a / b
print(c)# 次方的表示形式
c = b**3print(c)# 三角函数的运算
c =10*np.cos(a)print(c)# 比较大小 < > ==print(b)print(b==3)# 矩阵运算
a = np.array([[1,1],[0,1]])
b = b.reshape(2,2)print(a,"\n", b)
c = np.matmul(a, b)print(c)
c = np.dot(a, b)print(c)
c = a.dot(b)print(c)# 随机初始化
a = np.random.random((2,4))print(a)# 轴相关print(np.sum(a))print(np.sum(a, axis=0))# 列print(np.min(a, axis=1))# 行print(np.max(a, axis=0))# 列print(np.max(a, axis=1))# 行
A = np.arange(3,15).reshape(3,4)print(A)# 输出索引为2的元素或索引为2的整行元素print(A[2])print(A[2,1])print(A[2][1])print(A[2,:])print(A[:,1])print(A[1,1:3])for row in A:print(row)for col in A.T:print(col)print(A)print(A.flatten())for item in A.flat:print(item)
``
# 5. numpy的array合并
```python
A = np.array([1,1,1])
B = np.array([2,2,2])# 上下合并 vertical stack
C = np.vstack((A, B))print(A.shape, B.shape, C.shape)# 左右合并 horizontal stack
D = np.hstack((A, B))print(D)print(D.shape)# 转置对序列不起作用print(A.T)# 在行或列上添加了一个维度
A = A[:, np.newaxis]
B = B[:, np.newaxis]# 指定维度合并
C = np.concatenate((A, B, A, A), axis=1)# 1是左右 0是上下print(C)
5. numpy分割
A = np.arange(12).reshape((3,4))print(A)# spilt只能进行每块相等的分割
B, C = np.split(A,2, axis=1)# 列print(B)print(C)
B, C, D = np.split(A,3, axis=0)# 行print(B)print(C)print(D)# 不等量的分割
B, C, D = np.array_split(A,3, axis=1)print(B)print(C)print(D)print(np.vsplit(A,3))print(np.hsplit(A,2))
6. numpy 的 copy & deep copy
a = np.arange(4)print(a)# 赋值之后,b就是a
b = a
c = a
d = b
a[0]=33print(a)print(b)print(c)print(d)print(d is a)# True
d[1:3]=[22,33]print(d)print(a)# 只赋值不关联 deep copy
b = a.copy()print(a)print(b)
a[2:3]=[100]print(a)print(b)