文章目录
Numpy数组
数据处理与计算、变换
导入numpy: import numpy as np
注意: numpy中的数组中元素的类型必须一致
Numpy:ndarray(多维数组的数据处理)
一、生成数组
1. array
用array函数将列表转换成数组
a1=np.arrary([1,2,3,4,5,6])
a1
a2=np.array([[1,2,3],[4,5,6]])
#array([10, 78, 34, 89, 23])
2.arange
用arange函数创建指定范围的数字数组(arange用法和range函数类似)
a3=np.arange(60,100,5)
a3
#array([60, 65, 70, 75, 80, 85, 90, 95])
3. linspace
用linspace函数创建等差数列
a4=np.linspace(1,100,5)
a4
#array([ 1. , 25.75, 50.5 , 75.25, 100. ])
4.np.random
使用numpy的随机模块中的随机函数产生数字数组
np.random,random((m,n))
:生成一个m行n列的随机数组
np.array([random.random() for i in range(n)])
:随机生成一个包含n个元素的数组
np.random.randint(0,z,n)
:随机生成一个包含n个元素且值全在0~z之间的一维数组
np.random.randint(0,z,(m,n))
:在0~z之间生成一个有m行n列的随机数组
a5=np.random.randint(1,101,10)
#array([17, 73, 56, 21, 23, 83, 94, 14, 29, 61])
a6=np.random.rand(1,100,(3,4))
#array([[63, 68, 83, 93],
# [81, 79, 60, 6],
# [28, 81, 57, 87]])
#随机生成包含十个元素的数组
a6=np.array([random.random() for i in range(10)])
a6
#array([0.9495929 , 0.07423479, 0.19000517, 0.64636538, 0.66012647,
# 0.91676274, 0.27137253, 0.07187407, 0.73341749, 0.17518598])
5.特殊函数
np.eye(n)
:创建一个n行n列的单位矩阵
np.zeros((m,n))
:生成m行n列全为0的数组
np.ones( (m,n) )
:生成m行n列全为1的数组
np.full( (m,n ) , y)
:生成有m行n列元素全为y的数组
a7=np.eye(4)
#array([[1., 0., 0., 0.],
# [0., 1., 0., 0.],
# [0., 0., 1., 0.],
# [0., 0., 0., 1.]])
二、数组的属性
1.查看属性
函数 | 意义 |
---|---|
a.size | 数组元素的个数 |
a.shape | 数组的形状(几行几列) |
a.reshape() | 改变数组的形状 |
andim | 维度(如一维、二维、三维),数组轴的个数 |
a.dtype | 数组的类型 |
a.itemsize | 每个元素所占的内存大小(单位字节) |
a.nbytes | 整个数组所占的内存大小(单位字节) |
np.argmax(a,axis=0) | 获取最大值所在位置 |
np.argmin(a,axis=1) | 获取最小值所在位置 |
2.转换方法
函数 | 功能 | 说明 |
---|---|---|
a.sort( ) | 排序 | 从小到大排序(直接修改原数组) |
sorted( ) | 排序 | 进行简单的升序排序,返回一个新的list |
np.unique(a) | 去重 | 去重 |
a.reshape( ) | 改变形状 | 调整数组形状 ,产生一个新的数组,不修改原数组 |
a.reshape((n,)) | 数组扁平化 | 将共有n个元素的多维数组转换为一行有n个元素的一维数组 |
a.resize( ) | 改变大小 | 调整数组大小或形状,直接改变原数组,会在数据不够时自动填补为0 |
a.flatten( ) | 数组扁平化 | 将多维数组变成一维数组,返回一个拷贝不会改变原数组 |
a.flatten()[n]=x | 数组扁平化 | 将数组变为一维数组后修改某个元素的值,不会修改原数组 |
a.ravel() | 数组扁平化 | 将多维数组变成一维数组,不改变原数组,返回一个视图; |
a.ravel()[n]=x | 数组扁平化 | 将数组变为一维数组后修改某个元素的值,会直接改变原数组的值 |