赞
踩
一、数据类型
bool_ :布尔类型(True,False)
int_ :默认整数,通常为int32
int8_ :字节(-128~127)
int16 :16位整数(-32768~32767)
int32 :32位整数(-2147483648~2127483647)
int64 :63位整数(太长了)
uint8 :8位无符号整数(0-255)
uint16 :16位无符号整数(0~65535)
……
float_ :float64的简写
float16 :半精度浮点:1个符号位,五个指数,,十个尾数
……
datetime64:日期时间类型
使用例子:
- import numpy as np
- n=np.array([1,2,3],dtype="int_") #注意别少了_
二、数组的运算
首先我们创建两个数组
import numpy as np n1=np.array([1,2]) n2=np.array([3,4]) ##加法运算 print(n1+n2) ##减法运算 print(n1-n2) #乘法运算 print(n1*n2) #除法运算 print(n1/n2) #幂运算 print(n1**n2) #比较运算 print(n1>n2) print(n1!=n2) ####所有的运算操作都是对应位置运算
三、数组的索引和切片
索引:用于标记数组当中对应元素的唯一数字,从0开始
一维数组:
- n=np.array([1,2,3,4])
- print(n[0]) #结果为1
- print(n[-4]) #结果也是1,逆向索引
- n=np.arrray([10,20,30,40,50,60])
- print(n[:3] )#从第一个元素开始,到第三个元素结束(从0开始到2结束,步长默认1)
- print(n[2:4])#从第三个元素开始,到第四个元素结束(从2开始到3结束,步长为1)
- print(n[2:])#从三个元素开始,到最后一个元素结束(从2开始,到最后结束,步长为1)
- print(n[1::3])#从第二个元素开始,到最后一个元素结束,步长为3
- print(n[::-1])#逆序输出
- print([::])#获取所有元素
二维数组:
- n=np.array([[1,2,3],[4,5,6],[7,8,9]])
- print(n[1,2])#结果为6,意思为索引为一的行,索引为二的列
- print(n[:2,1:])#从索引为0的行开始,到索引为2的行结束,从索引为1的列开始,到最后
- print(n[1,:2])#索引为一的行,到索引为2的列结束,不包含2
- #逗号之前表示行,逗号之后表示列
切片操作:
注意:对切片后的数组进行操作会改变原数组的元素,列表不会
- import numpy as np
- n=np.array([1,2,3,4,5,6])
- arr=n[:4:2]#从0开始,到4结束,步长为2
- print(arr)
- #结果为[1 3]
- 语法为: arr=n[star:stop:step]
二维数组切片
- import numpy as np
- n=np.array([[1,2,3,4],[5,6,7,8],[9,0,1,2]])
- arr=n[1,2] #索引为1的行,索引为2的列
- #逗号之前表示行,逗号之后表示列
- print(arr)
- #结果为7
四、数组的重塑
更改数组的形状,使用reshape方法实现
- import numpy as np
- n=np.arange(6)#随机创建一个0~5之间的数组
- print(n)
- #结果为[0 1 2 3 4 5]
- #重塑
- n1=n.reshape(2,3)#重塑为两行三列的数组
- 结果为[ [0 1 2]
- [3 4 5]]
- #多维数组重塑
- n=np.array([[1,2,3],[4,5,6]])
- #创建了一个两行三列的数组
- n1=n.reshape(3,2)
- print(n1)
- 结果为[[1,2]
- [3,4]
- [5,6]]
- #重塑后的 数组所包含的元素个数必须与原数组的元素个数相同,如果元素发生变化,程序报错
五、数组转置
数组的行列转换通过数组的T属性或者transpose方法实现
- import numpy as up
- n=np.arange(24).reshape(4,6)
- #创造一个四行六列的数组
- #转置
- n2=n.T
- #行列进行转换
- n3=n.transpose()
- #行列转换
六、数组的增删改查
import numpy as np n1=np.array([[1,2],[3,4],[5,6]]) n2=np.array([[7,8],[9,0],[6,7]]) #水平方向增加数据,原来的两列变成了四列 print(np.hstack(n1,n2)) #垂直方向增加数据,原来的三行变成了六行 print(np.vstack(n1,n2)) #数组的删除操作 #删除第三行 n3=np.delete(n1,2,axis=0) #axis=0表示行,2表示索引为2的行 #删除第一列 n4=np.delete(n1,0,axis=1) #删除第三行和第二行 n5=np.delete(n2,(1,2),axis=0) #修改操作 n2[1]=[20,40] n2[2][1]=76 #前面是行,后面是列 #查询 #语法可用numpy.where(条件,true,false) n=np.arange(1,11)#创建一个一到十的一维数组 n6=n[np.where(n>5)]#获取数组中所有大于五的元素 n7=np.where(n>5,1,0) #若满足条件输出1,不满足输出0
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。