numpy\pandas常用数组格式

本总结共分为以下几部分:创建、属性、变换、引用、特例、运算

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值

猜你喜欢

转载自blog.csdn.net/u010380670/article/details/84800367
今日推荐