一.Python中的numpy模块能够很好的帮助我们处理类似于数组的数据,并且对他们进行整理或修改,还可以配合matplotlib模块来共同进行数据分析和处理.
1.导入numpy模块
import numpy as np
二.numpy中的内置方法
1.np.array()
s1=np.array([1,3,8,5,22,7])#内置的array方法能够传入列表类新的数据
s2=np.arange(1,6)#自带的arange方法也能将传入的数据转换成列表的形式
s3=np.array(range(24))#在array中还可以使用range方法传入数据
ps:在使用方法传入数据时必须用对象来接收!
2.对象.dtype方法
print(s1.dtype)
print(s2.dtype)
print(s3.dtype)#使用该方法可以查看对象本身元素成员的类型
3.np.loadtxt方法:对某一文件内的内容提取并处理的方法
us_file_path=("./US_Numbers.csv")#利用对象接收需要处理的文件路径
t1=np.loadtxt(us_file_path,delimiter=",",dtype="int",unpack=True)#delimiter表示对数据的分隔符,dtype表示将对象中的内容处理为什么样的类型
t2=np.loadtxt(us_file_path,delimiter=",",dtype="int")
4.对象.shape
s1=np.array([1,3,8,5,22,7])
print(s1.shape)#使用shape方法可以打印出处理对象的类型
如图,打印出来的(*,*)表示几行几列的形式,一般都用","区分块,行,列。
一维:(*, )#*表示元素个数
二维:(*,*)#前后分别表示*行*列
三维:(*,*,*)#前后分别表示*块*行*列
5.对象.reshape
该方法用来对某个需要处理的数据对象的类型进行修改
s3=np.array(range(24))
t3=s3.reshape(4,6)
print(s3)
print(t3)
s3本来是一维数组的形式,现将其修改为二维4行6列的形式(注意:对象本身不会被修改,而是会产生一个新的对象)
6.对象.transpose()
t4=t3.transpose()
表示将t3中的数据行列互换,类似于线性代数中矩阵的转置作用
7.对象.flatten()
t5=t3.flatten()
该方法用于将高维对象由维数展开变成一维的数据对象
8.对象.astype(数据类型)
该方法用于将某个数组对象中的所有元素类型替换成另一种类型
t1=t1.astype(float)
三.numpy对数组的计算
1.数组对象+数字
表示将数组内每个元素都加上该数字
s1=np.array(range(24)).reshape(4,6)
print(s1)
print("*"*100)
s2=s1+2
print(s2)
2.数组对象*数字
表示将数组内每个元素都乘该数字
s3=s1*2
print("*"*100)
print(s3)
3.数组对象/数字
表示将数组内每个元素都除以该数字
ps:若数组对象/的数字为0,那么则会生成nan和inf类型的数据
s4=s1/2
print("*"*100)
print(s4)
print("*"*100)
s5=s1/0
print(s5)
4.数组对象+数组对象
该操作在两个数组对象维数相同并且对应位置都有元素时才可使用,使每个元素对应相加
s6=s1.transpose()
print(s6)
s7=s1+s6
print(s7)
四.对数组对象中的元素的提取
print(t3[2])#取某一行
print(t3[2:])#从第2下标开始行取到结尾行
print(t3[:3])#注意此处是取到末尾行数即3-1的位置
print(t3[[0,2,3]])#取不连续的某几行,这里取0,2,3行
print(t3)
print("A")
print(t3[1,:3])#表示从第1行第0列开始取到第1行第2列
print("*"*100)
print("B")
print(t3[:,3:])#表示从第3列开始取到最后一列
print("*"*100)
print("C")
print(t3[:,[0,2,4]])#表示取不连续的某几列,这里是取0,2,4列
print("*"*100)
print(t3[[0,1,2],[0,2,3]])#表示分别取[0,0],[1,2],[2,3]位置的点
print("*"*100)
print(t3[t3<10])#表示取出t3中所有小于10的元素
五.对数组对象元素的修改
1.三目运算符(np.where(布尔条件判断,True,False)
import numpy as np
s1=np.array(range(24)).reshape(4,6)
print(s1)
s2=np.where(s1<15,5,100)
print(s2)
2.对象.clip()方法
s3=s1.clip(10,18)
print(s3)
如图为例,该方法表示将s1数组中小于10的元素替换为10,大于18的元素替换为18