numpy模块基本使用方法
1.导入模块
import numpy as np
2.创建数组
np.array([ ])/np.array([[ ],[ ]]):能创建一维,二维或者多维数组
np.arange(start,stop,step):只能创建一维数组
np.linspace(start,stop,num=50):只能创建一维数组
np.random系列:
np.random.rand():创建随机数为0-1的数组
np.random.randint(low,high,size):创建一个size大小的数组
np.random.randn():创建随机数组
可以使用np.random.seed()来固定数组元素
其他(不常用):
np.ones(shape)
np.ones_like(a)
np.zeros(shape)
np.zeros_like(a)
np.eye():创建单位矩阵
np.array([1,2,3])
array([1, 2, 3])
np.arange(1,10,step=2)
array([1, 3, 5, 7, 9])
np.linspace(1,10,num=20)
array([ 1. , 1.47368421, 1.94736842, 2.42105263, 2.89473684,
3.36842105, 3.84210526, 4.31578947, 4.78947368, 5.26315789,
5.73684211, 6.21052632, 6.68421053, 7.15789474, 7.63157895,
8.10526316, 8.57894737, 9.05263158, 9.52631579, 10. ])
np.random.seed(3)
print(np.random.rand(2,3))
print(np.random.randint(1,10,size=(2,5)))
print(np.random.randn(2,3))
[[0.5507979 0.70814782 0.29090474]
[0.51082761 0.89294695 0.89629309]]
[[6 8 7 1 5]
[8 9 2 7 3]]
[[-0.34733018 0.06629873 -1.62758528]
[ 0.39788586 -1.62915743 -0.63893553]]
3.数据的属性
arr.shape:数组的形状,可以通过arr.reshape(shape)来改变数组的形状
arr.dtype:数组元素的类型,可以通过arr.dtype=""来改变数组元素的类型
arr.ndim:数组的维度
arr.size:数组元素的个数
type(arr):数组类型
4.ndarray的数据类型
bool 用一个字节存储的布尔类型(True或False)
inti 由所在平台决定其大小的整数(一般为int32或int64)
int8 一个字节大小,-128 至 127
int16 整数,-32768 至 32767
int32 整数,-2 ** 31 至 2 ** 32 -1
int64 整数,-2 ** 63 至 2 ** 63 - 1
uint8 无符号整数,0 至 255
uint16 无符号整数,0 至 65535
uint32 无符号整数,0 至 2 ** 32 - 1
uint64 无符号整数,0 至 2 ** 64 - 1
float16 半精度浮点数:16位,正负号1位,指数5位,精度10位
float32 单精度浮点数:32位,正负号1位,指数8位,精度23位
float64或float 双精度浮点数:64位,正负号1位,指数11位,精度52位
complex64 复数,分别用两个32位浮点数表示实部和虚部
complex128或complex 复数,分别用两个64位浮点数表示实部和虚部
arr = np.random.randn(4,5)
print(arr.shape)
print(arr.ndim)
print(arr.dtype)
print(arr.size)
print(type(arr))
(2, 3)
2
float64
6
5.数组的索引及切片
基本的索引及切片arr[行,列]
取前三行的数据:arr[0:3]或者arr[0:3,:]
取前两列的数据:arr[:,0:3]
取前三行前两列的数据:arr[0:3,0:2]
布尔型的索引及切片
arr
array([[ 0.2613125 , -0.69459727, -2.02469194, 0.84595316, -0.47455326],
[-1.39576555, -1.73278446, -0.23322423, -0.36848667, -1.8131661 ],
[ 0.25453554, 1.06394904, -0.98961218, -0.96505109, -1.42170273],
[-0.21899587, 0.0673387 , -1.43275264, -0.03472461, -0.87321135]])
#取前三行的数据
arr[0:3]
arr[0:3,:]
array([[ 0.2613125 , -0.69459727, -2.02469194, 0.84595316, -0.47455326],
[-1.39576555, -1.73278446, -0.23322423, -0.36848667, -1.8131661 ],
[ 0.25453554, 1.06394904, -0.98961218, -0.96505109, -1.42170273]])
#取前两列的数据
arr[:,0:2]
array([[ 0.2613125 , -0.69459727],
[-1.39576555, -1.73278446],
[ 0.25453554, 1.06394904],
[-0.21899587, 0.0673387 ]])
#取前三行前两列的数据
arr[0:3,0:2]
array([[ 0.2613125 , -0.69459727],
[-1.39576555, -1.73278446],
[ 0.25453554, 1.06394904]])
ar = np.arange(12).reshape(3,4)
i = np.array([True,False,True])
j = np.array([True,True,False,False])
print(ar)
print(i)
print(j)
print(ar[i,:]) # 在第一维度做判断,只保留True,这里第一维度就是行,ar[i,:] = ar[i](简单书写格式)
print(ar[:,j]) # 在第二维度做判断,这里如果ar[:,i]会有警告,因为i是3个元素,而ar在列上有4个
# 布尔型索引:以布尔型的矩阵去做筛选
m = ar > 5
print(m) # 这里m是一个判断矩阵
print(ar[m]) # 用m判断矩阵去筛选ar数组中>5的元素
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[ True False True]
[ True True False False]
[[ 0 1 2 3]
[ 8 9 10 11]]
[[0 1]
[4 5]
[8 9]]
[[False False False False]
[False False True True]
[ True True True True]]
[ 6 7 8 9 10 11]
6.级联操作
将多个numpy数组进行横向或者纵向的拼接
axis轴向的理解
0:列
1:行
arr = np.random.randint(1,16,size=(3,4))
arr
array([[ 2, 6, 2, 9],
[ 9, 8, 14, 1],
[ 1, 10, 2, 8]])
np.concatenate((arr,arr),axis=1)
array([[ 2, 6, 2, 9, 2, 6, 2, 9],
[ 9, 8, 14, 1, 9, 8, 14, 1],
[ 1, 10, 2, 8, 1, 10, 2, 8]])
7.常用的聚合操作
sum求和,max最大值,min最小值,mean平均值
arr
array([[ 2, 6, 2, 9],
[ 9, 8, 14, 1],
[ 1, 10, 2, 8]])
print(arr.sum())#计算全部数组的和
print(arr.sum(axis=0))#计算每一列的和
print(arr.sum(axis=1))#计算每一行的和
#max,min,mean同sum
72
[12 24 18 18]
[19 32 21]
8.常用的统计函数
np.amin() 和 np.amax(),用于计算数组中的元素沿指定轴的最小、最大值。
np.ptp():计算数组中元素最大值与最小值的差(最大值 - 最小值)。
np.median() 函数用于计算数组中元素的中位数(中值)
标准差std():标准差是一组数据平均值分散程度的一种度量。
公式:std = sqrt(mean((x - x.mean())**2))
方差var():统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数,即 mean((x - x.mean())** 2)。换句话说,标准差是方差的平方根。
arr
array([[ 2, 6, 2, 9],
[ 9, 8, 14, 1],
[ 1, 10, 2, 8]])
np.ptp(arr,axis=0)
array([ 8, 4, 12, 8])
np.median(arr,axis=0)
array([2., 8., 2., 8.])
np.std(arr)
arr.std()
4.123105625617661
np.var(arr)
arr.var()
17.0
9.常用的数学函数
NumPy 提供了标准的三角函数:np.sin()、np.cos()、np.tan()
np.around(a,decimals) 函数返回指定数字的四舍五入值。
参数说明:
a: 数组
decimals: 舍入的小数位数。 默认值为0。 如果为负,整数将四舍五入到小数点左侧的位置
np.sin(arr)
array([[ 0.90929743, -0.2794155 , 0.90929743, 0.41211849],
[ 0.41211849, 0.98935825, 0.99060736, 0.84147098],
[ 0.84147098, -0.54402111, 0.90929743, 0.98935825]])
np.around(arr,decimals=-1)
array([[ 0, 10, 0, 10],
[10, 10, 10, 0],
[ 0, 10, 0, 10]])
原文链接:https://blog.csdn.net/weixin_43816759/article/details/108778390