1.定义一个数组
import numpy as np
t1 = np.array([1,2,3,4,5,6])
#等价于
t2= np.array(range(1,6))
#等价于
t3= np.arange(6)#相当于把t2的功能进行了结合,推荐
2.检查数据类型
print(type(t3))
print(t3.dtype)
#输出为
<class 'numpy.ndarray'>
int64
2.1指定特定类型的数组
t3= np.arange(6,dtype=float)#或者是"float32/float64"
2.3调整数据类型以及小数操作
t4= t3.astype("int8")
t4= np.array([random.random() for i in range(10)])#random.random生成0到1的随机小数
t5=np.round(t4,2)#对小数进行四舍5入
print(t4)
print(t5)
2.4数组的形状
#一维数组
t1 = np.array([1, 2, 3, 4, 5, 6,7,8,9,10,11,12])
print(t1.shape) #这里显示(12,)表示有多少个元素
#二维数组
t2= np.array([[1,2,3],[13,5,5]])
print(t2.shape)#这里显示(2,3)表示2行3列
#修改数组形状,比如这里我们把一维数组变成一个3行4列的数组
t3=t1.reshape((3,4))#转化为一维数组据是re4shape((12,))
print(t3)
#二维数组展开成一维数组 用flatten
t4=t2.flatten()
print(t1)
2.4.1
#数组的计算可以用+ - * /
#数组+某个数字==对数组的每个元素进行+(同理其他)
#数组与数组操作
#当3行4列的二维数组和只有3个元素的一维数据进行计算时,会分别与每列的数据进行操作,同理,当只有4个元素时,分别每行操作,其他数量的一维操作不可行
3 对于轴(axis)的理解
4.numpy对数据的读取与转置
t1=np.loadtxt(path,delimiter=",",detype="int",unpack=True)#unpack为是否进行矩阵转置,delimiter为数据分隔的符号设定
#转置的3种方法
t5=t3.transpose()
print(t5)
t6=t3.T
print(t6)
t7=t3.swapaxes(1,0)#此法为交换轴,之前为0轴与1轴
print(t7)
5.对数据的切片索引
import numpy as np
a=np.array([
[1,3,4,5],
[2,4,5,7],
[6,7,6,8],
[8,9,7,5],
])
b=a[0]#取第一行
c=a[:,[1,3]]#取2,4列
e=a[[0,2],[1,2]]#取得的是(0,1)(2,2)这两个点
print(b)
print(c)
print(e)
a[[0],[0]]=100#对(0,0)这个点进行修改
a[[0,1]]=100#对0和1行全部取为100
a[a<100]=0#对数组内小于100的元素全部赋值为0
f=np.where(a<10,0,100) #numpy中的三元运算符
#numpy中的裁剪操作
g=a.clip(10,20)#将数组中小于10的替换为0,大于20的替换为20
print(g)
5.数组的拼接
在数组中,.shaoe的作用是返回数组维度的大小,如a[0].shape返回的是数组a的第一维度也就是行的大小。
c=np.vstack((a,b))#竖直拼接
print(c)
d=np.hstack((a,b))#水平拼接
print(d)
d[[1,2],:]=d[[2,1],:]#数组的行交换
print(d)
d[:,[3,4]]=d[:,[4,3]]#数组的列交换
print(d)
创建全0数组:np.zeros((2,1))
创建全1数组:np.ones((3,4))