import numpy as np # 定义矩阵/数组 array1 = np.array([[1,2,3],[4,5,6]]) print(array1) print("num of dim: ", array1.ndim) print("shape: ", array1.shape) print("size: ", array1.size) array2 = np.array([2,3,4], dtype=np.int64) print(array1.dtype) print(array2.dtype) # 自动生成数组 array3 = np.zeros((3,4)) print(array3) array4 = np.ones((2,3), dtype=np.int16) print(array4) array5 = np.empty((2,2)) print(array5) array6 = np.arange(10, 20, 2) # 起止步长 print(array6) array7 = np.arange(12).reshape((3,4)) # 0-11,3行4列 print(array7) array8 = np.linspace(1, 10, 5) # 1-10,生成5段 print(array8)
所有的方法都可以指定axis(0按列、1按行)
a = np.array([10,20,30,40]) b = np.arange(4) print(a+b) print(a-b) print(b**2) # 2次幂 print(10*np.sin(a)) # sin print(np.tan(a)) # tan print(a<25) print(b==3)
c = np.array([[1,2],[3,4]]) d = np.arange(4).reshape((2,2)) print(c) print(d) print(c*d) # 逐个相乘 print(np.dot(c,d)) # 矩阵乘法 print(c.dot(d)) # 矩阵乘法
e = np.random.random((2,4)) # 创建随机生成(0-1)的array print(e) print(np.sum(e)) # 求和 print(np.sum(e, axis=0)) # 列上求和 print(np.sum(e, axis=1)) # 行上求和 print(np.min(e)) # 最小值 print(np.max(e)) # 最大值
a = np.arange(2,14).reshape((3,4)) print(a) print(np.argmin(a)) # 最小值的索引 print(np.argmax(a)) # 最大值的索引 print(np.mean(a)) # 平均值 print(np.median(a)) # 中位数 print(np.cumsum(a)) # 顺序累加 print(np.diff(a)) # 两两之差 print(np.nonzero(a)) # 对应每个非0位置的行列号和类型
b = np.arange(14,2,-1).reshape((3,4)) print(b) print(np.sort(b)) # 逐行排序 print(np.transpose(b)) # 转置 print(b.T) # 转置 print(np.clip(b,5,9)) # 大于9的变成9,小于5的变成5
a = np.arange(3,15).reshape((3,4)) print(a) print(a[2]) # 打印第2行 print(a[2][3]) print(a[2,3]) print(a[2,:]) # 打印第2行 print(a[:,1]) # 打印第1列 print(a[1,1:3])
for row in a: print(row) for column in a.T: print(column) print(a.flat) # 迭代器 print(a.flatten()) # 返回迭代的值 for item in a.flat: print(item)
import numpy as np a = np.array([1,1,1]) b = np.array([2,2,2]) print(np.vstack((a,b))) # vertical stack 上下合并[[1,1,1],[2,2,2]] print(np.hstack((a,b,b))) # horizontal stack 左右合并[1,1,1,2,2,2,2,2,2] print(a[np.newaxis, :]) # 在列上加维度 [[1,1,1]] print(a[:,np.newaxis]) # 在行上加维度 [[1],[1],[1]] a = a[:,np.newaxis] b = b[:,np.newaxis] print(np.hstack((a,b))) # [[1,2],[1,2],[1,2]] print(np.vstack((a,b))) # [[1],[1],[1],[2],[2],[2]] # 多个array纵向或横向合并 print(np.concatenate((a,b,b), axis=0)) print(np.concatenate((a,b,b), axis=1))
import numpy as np a = np.arange(12).reshape((3,4)) print(a) # 只能进行等分 print(np.split(a, 2, axis=1)) print(np.split(a, 3, axis=0)) # 可以不等分 print(np.array_split(a, 3, axis=1)) print(np.vsplit(a, 3)) print(np.hsplit(a, 2))
b = np.arange(4) c = b print(c is b) # 同一块内存 b[0] = 8 print(c) d = c print(d) # 跟着改变 c = b.copy() # 深拷贝 print(b is c) b[3] = 9 print(c) # 没有改变
1、
2、
原文:https://www.cnblogs.com/ysysyzz/p/12741633.html