Python基础之Numpy的基本⽤法详解
⽬录
⼀、数据⽣成
1.1 ⼿写数组
1.2 序列数组
1.3 随机数组
1.4 其他⽅式数组
⼆、数组属性查看
三、数组索引
3.1 ⼀维数组的索引
3.2 ⼆维数组的索引
四、数组的⽅法
4.1 改变数组维度
4.2 数组拼接
4.3 数组分隔
4.4 算术运算
⼀、数据⽣成
1.1 ⼿写数组
a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) # ⼀维数组
b = np.array([[1, 2], [3, 4]]) #⼆维数组
1.2 序列数组
numpy.arange(start, stop, step, dtype),start默认0,step默认1
c = np.arange(0, 10, 1, dtype=int) # =np.arange(10) [0 1 2 3 4 5 6 7 8 9]
d = np.array([np.arange(1, 3), np.arange(4, 6)]) # ⼆维数组
# 不过为了避免⿇烦,通常序列⼆维数组都是通过reshape进⾏重新组织
dd = c.reshape(2, 5) # 将⼀维数组重新组合成2⾏5列
1.3 随机数组
numpy.random.random(size=None) 该⽅法返回[0.0, 1.0)范围的随机⼩数。
numpy.random.randint() 该⽅法返回[low, high)范围的随机整数。
该⽅法有三个参数low、high、size 三个参数。默认high是None,如果只有low,那范围就是[0,low)。如果有high,范围就是[low,high)
numpy.random.randn(d0,d1,…,dn) 该⽅法返回⼀个或⼀组样本,具有正态分布
al 指定期望和⽅差的正太分布
e = np.random.random(size=2) # ⼀维数组,元素两个,[0.0,1.0]的随机数
f = np.random.random(size=(2, 3)) # 两⾏三列数组,[0.0,1.0]的随机数
h = np.random.randint(10, size=3) # [0,10]范围内的⼀⾏三列随机整数
i = np.random.randint(5, 10, size=(2, 3)) # [5,10]范围内的2⾏3列随机整数
1.4 其他⽅式数组
np.linspace 创建⼀个⼀维数组,数组是⼀个等差数列构成的
numpy.logspace 创建⼀个于等⽐数
j = np.zeros((2, 5))
k = np.ones((2, 5))
l = np.linspace(1, 20, 10)
⼆、数组属性查看
ndarray.ndim
darray.shape 数组的维度和列,对于矩阵,n ⾏m 列
ndarray.size 数组元素的总个数,相当于.shape 中n*m 的值
ndarray.dtype ndarray 对象的元素类型linspace numpy
ndarray.itemsize ndarray 对象中每个元素的⼤⼩,以字节为单位
ndarray.flags ndarray 对象的内存信息
ndarray.imag ndarray 元素的虚部
ndarray.data 包含实际数组元素的缓冲区,由于⼀般通过数组的索引获取元素,所以通常不需要使⽤这个属性。print('ndim:数组的秩(维度)'.center(20, '*'))
print('ndim:', i.shape[1])
三、数组索引
x = np.arange(1, 13) # ⼀维数组
a = x.reshape(4, 3) # ⼆维数组
print(‘x:', x)
print(‘a:', a)
3.1 ⼀维数组的索引
print(x[2:])
print(x[3:8])
3.2 ⼆维数组的索引
print(a[0]) # 第⼀⾏
print(a[2, 2]) # 第三⾏第4列
print(a[:, 2])
print(a[::2, 0]) # 所有奇数⾏第1列数据
print(a[(2, 1), (1, 2)]) # 第3⾏第2列,第2⾏第3列 = np.array((a[2,1],a[1,2]))取出来后在重新⽣成新的数组
print(a[-2]) # 获取倒数第⼆⾏
print(a[::-1]) # ⾏倒序
print(a[::-1, ::-1]) # ⾏列倒序
四、数组的⽅法
4.1 改变数组维度
reshape将⼀维数组变成⼆维或者三维
ravel将三维数组变成⼀维数组,flatten将⼆维数组变成⼀维数组
4.2 数组拼接
使⽤numpy.hstack(a1,a2) 函数将两个数组⽔平组合
numpy.vstack(a1,a2) 函数可以将两个或多个数组垂直组合起来形成⼀个数组
使⽤atenate((a1, a2, …), axis),控制axis参数的值也可以实现hstack和vstack的功能,axis=0等同于vstack、axis=1等同于hstack
4.3 数组分隔
b = np.split(x, 4) # 将⼀个⼀维数组四等分, ⽤b[1]的⽅式获取每个块的数据
# print(b[1])
c = np.split(a, 2, axis=0) # ⼆维数组的垂直分隔,按⾏分隔成两部分
# print(c[0])
d = np.split(a, [2], axis=1) # ⼆维数组的⽔平分隔,按列分隔成两部分
# print(d[0])
4.4 算术运算
加减乘除: add(),subtract(),multiply() 和divide()
np.sum() 求和
np.prod() 所有元素相乘
np.std() 标准差
np.var() ⽅差
np.power() 幂运算
np.sqrt() 开⽅
np.min() 最⼩值
np.max() 最⼤值
np.argmin() 最⼩值的下标
np.argmax() 最⼤值的下标
np.inf ⽆穷⼤
np.log(10) 对数
到此这篇关于Python基础之Numpy的基本⽤法详解的⽂章就介绍到这了,更多相关Python Numpy⽤法内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论