最近用numpy做图像处理,涉及到一些数组的基础操作,这里记录一下备忘。
import numpy as np
数组的随机填充:
np.array([0, 1, 2, 3]).reshape(2, 2) #将列表0,1,2,3转为2x2的数组
np.random.randint(0, 4, (3, 3, 3)) #生成3x3x3的随机数组,每个元素为0~4之间的随机整数
全0/1数组:
np.zeros(shape=[4,3], dtype=int) #生成4x3的全0数组
np.ones(shape=[4,3], dtype=int) #生成4x3的全1数组
数组的四则运算:
np.abs(array_a - array_b) #维数相同的两个数组求差值,两数组同位置的元素相差
np.array(a) * int_b #数组a乘以整数b,将数组a中每个元素都乘以该整数b
np.array(a) * np.array(b) #维数相同的两个数组求乘积,两数组同位置的元素相乘
数组的特殊操作:
np.diagonal(array_a) #数组a取对角线元素,返回为新的数组
np.swapaxes(array_a, 0, 1) #数组a的前两个维度互换
np.rot90(array_a) #数组a逆时针旋转90度
np.transpose(array_a) #数组a的维度反转。假设为x-y-z三维度的数组,反转后即为z-y-x三维度
np.median(array_a, axis=0) #对素组a的0维度中各元素求中值
np.max(array_a) #数组a中各元素求最大值
np.min(array_a) #数组a中各元素求最小值