本总结共分为以下几部分:创建、属性、变换、引用、特例、运算
1、创建
2、属性
data = [[2, 4, 5],[3,5, 7]]
arr = np.array(data)
arr
arr.shape #维度
arr.ndim #秩,即数据轴的个数
arr.size #元素的总个数
arr.itemsize #数据中每个元素的字节大小
arr.dtype #数据类型
3、类型变换
arr = np.arange(9)
变换类型 | 命令 |
---|---|
重塑 | arr.reshape((3,3)) |
降维 | arr.ravel()-arr.flatten() |
按行合并 | np.concatenate([arr1, arr2],axis=0) -np.vstack((arr1,arr2)) |
按列合并 | np.concatenate([arr1, arr2],axis=1)-np.hstack((arr1, arr2)) |
拆分 | split(ary数组, indices均分_or_sections按位置, axis=0拆分方向) |
转置 | arr.transpose((1,0))-arr.T |
轴变换 | arr.swapaxes |
引用:
transpose()
这个函数如果括号内不带参数,就相当于转置,和.T效果一样,而今天主要来讲解其带参数。
我们看如下一个numpy的数组:
arr=np.arange(16).reshape((2,2,4)) arr= array([[[ 0, 1, 2, 3], [ 4, 5, 6, 7]], [[ 8, 9, 10, 11], [12, 13, 14, 15]]])
那么有:
arr.transpose(2,1,0)
array([[[ 0, 8],
[ 4, 12]],
[[ 1, 9],
[ 5, 13]],
[[ 2, 10],
[ 6, 14]],
[[ 3, 11],
[ 7, 15]]])
为什么会是这样的结果呢,这是因为arr这个数组有三个维度,三个维度的编号对应为(0,1,2),比如这样,我们需要拿到7这个数字,怎么办,肯定需要些三个维度的值,7的第一个维度为0,第二个维度为1,第三个3,所以arr[0,1,3]则拿到了7
arr[0,1,3] #结果就是7
1
这下应该懂了些吧,好,再回到transpose()这个函数,它里面就是维度的排序,比如我们后面写的transpose(2,1,0),就是把之前第三个维度转为第一个维度,之前的第二个维度不变,之前的第一个维度变为第三个维度,好那么我们继续拿7这个值来说,之前的索引为[0,1,3],按照我们的转换方法,把之前的第三维度变为第一维度,之前的第一维度变为第三维度,那么现在7的索引就是(3,1,0)
同理所有的数组内的数字都是这样变得,这就是transpose()内参数的变化。
理解了上面,再来理解swapaxes()就很简单了,swapaxes接受一对轴编号,其实这里我们叫一对维度编号更好吧,比如:
arr.swapaxes(2,1) #就是将第三个维度和第二个维度交换
array([[[ 0, 4],
[ 1, 5],
[ 2, 6],
[ 3, 7]],
[[ 8, 12],
[ 9, 13],
[10, 14],
[11, 15]]])
还是那我们的数字7来说,之前的索引是(0,1,3),那么交换之后,就应该是(0,3,1) 多说一句,其实numpy高维数组的切片也是这样选取维度的。 这就是transpose和swapaxes函数的讲解了
原文:https://blog.csdn.net/qq1483661204/article/details/70543952
4、引用
条件筛选
5、特殊函数
arr = np.random.randint(100, 150, size=(5, 4)) #给定范围内随机整数
arr = np.random.randn(2, 3, 4) #正态分布样本值
arr = np.random.normal(4, 5, size=(3,5)) #具有正态分布的数组(均值、方差、数组大小)
arr = np.random.randint(100, 200, size=(5, 4))
np.random.permutation(arr) #对一个序列随机排序,不改变原数组
np.random.shuffle(arr)#对一个序列随机排序,改变原数组
6、运算
np.add(arr1, arr2)
np.minimum(arr1, arr2)
np.modf(x) : 将数组各元素的小数和整数部分以两个独立数组形式返回
np.where()
np.abs(x)、np.fabs(x) : 计算数组各元素的绝对值
np.sqrt(x) : 计算数组各元素的平方根
np.square(x) : 计算数组各元素的平方
np.log(x) 、np.log10(x)、np.log2(x) : 计算数组各元素的自然对数、10底对数和2底对数
np.ceil(x) 、np.floor(x) : 计算数组各元素的ceiling值或floor值