常用属性
import numpy as np
#创建等差数列和等比数列
np.linspace(1,10,11) #等差数列【start,end,num】
np.arange(0,10,0.5)
np.logspace(1.5,10,10,base=2)
#常用属性
np_array.ndim
np_array.shape
np_array.size
np_array.dtype
索引和切片
arr = np.linspace(0,10,10)
arr[::-1] #倒叙
arr[-1] #去最后一个元素
#直接赋值等于在视图上修改,这样源文件也会发生修改
10.0
#二维数组
arr_2 = np.random.rand(4,4) #使用方法与np.random.randn()函数相同,返回[0,1)之间的正态分布,size为传进的参数
print(arr_2)
[[0.19229372 0.82001877 0.27824818 0.98828307]
[0.7584768 0.29229306 0.72209078 0.77921587]
[0.54748219 0.80055111 0.32257143 0.79664218]
[0.49087707 0.97816853 0.68027464 0.55282942]]
#按照想要的顺序进行输出
print(arr_2[[2,3],1])
[0.80055111 0.97816853]
数组形状的改变函数
# arr.reshape() 和resize()的区别
arr_2.reshape(1,-1) # 不改变原数组arr_2
arr_2.resize(1,-1) # 改变原数组arr_2
arr.ravel() #将数组横向降维为1维
arr.ravel(order='F')#将数组纵向降维为1维
arr.flatten()#和ravel()的效果一模一样,横向展平
arr.flatten(order='F')#和ravel(order='F')的效果一模一样,纵向展平
np.hstack() #横向拼接
np.vstack() #纵向拼接
np.tile(arr,(沿着行的方向复制次数,沿着列的方向复制次数))
reshape(),flatten(),reval()的区别:
利用flatten()操作直接改变数组的值,原数组不会发生改变
利用reval()操作直接改变数组的值,原数组会发生改变
利用reshape()操作直接改变数组的值,原数组会发生改变
np.hstack() 横向拼接 np.vstack() 纵向拼接
横向合并,数组的行数相等
纵向合并,数组的列数相等
arr_1 = np.arange(12).reshape(3,4)
arr_2 = np.arange(0,15,1).reshape(3,5)
np.hstack([arr_1,arr_2])
arr_3 = np.arange(16).reshape(4,4)
np.vstack([arr_1,arr_3])
np.concatenate((arr_1,arr_2),axis = 1) #0是沿着行进行合并,1是按照列进行合并