当前位置:   article > 正文

numpy数组基本操作_np.array([1,2,3],[4,5,6][7,8,9]),0,1

np.array([1,2,3],[4,5,6][7,8,9]),0,1

一、数据类型

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:日期时间类型

使用例子:

  1. import numpy as np
  2. n=np.array([1,2,3],dtype="int_") #注意别少了_

二、数组的运算

首先我们创建两个数组

  1. import numpy as np
  2. n1=np.array([1,2])
  3. n2=np.array([3,4])
  4. ##加法运算
  5. print(n1+n2)
  6. ##减法运算
  7. print(n1-n2)
  8. #乘法运算
  9. print(n1*n2)
  10. #除法运算
  11. print(n1/n2)
  12. #幂运算
  13. print(n1**n2)
  14. #比较运算
  15. print(n1>n2)
  16. print(n1!=n2)
  17. ####所有的运算操作都是对应位置运算

三、数组的索引和切片

  1. 索引:用于标记数组当中对应元素的唯一数字,从0开始

一维数组:

  1. n=np.array([1,2,3,4])
  2. print(n[0]) #结果为1
  3. print(n[-4]) #结果也是1,逆向索引
  1. n=np.arrray([10,20,30,40,50,60])
  2. print(n[:3] )#从第一个元素开始,到第三个元素结束(从0开始到2结束,步长默认1)
  3. print(n[2:4])#从第三个元素开始,到第四个元素结束(从2开始到3结束,步长为1)
  4. print(n[2:])#从三个元素开始,到最后一个元素结束(从2开始,到最后结束,步长为1)
  5. print(n[1::3])#从第二个元素开始,到最后一个元素结束,步长为3
  6. print(n[::-1])#逆序输出
  7. print([::])#获取所有元素

二维数组:

  1. n=np.array([[1,2,3],[4,5,6],[7,8,9]])
  2. print(n[1,2])#结果为6,意思为索引为一的行,索引为二的列
  3. print(n[:2,1:])#从索引为0的行开始,到索引为2的行结束,从索引为1的列开始,到最后
  4. print(n[1,:2])#索引为一的行,到索引为2的列结束,不包含2
  5. #逗号之前表示行,逗号之后表示列
  1. 切片操作:

注意:对切片后的数组进行操作会改变原数组的元素,列表不会

  1. import numpy as np
  2. n=np.array([1,2,3,4,5,6])
  3. arr=n[:4:2]#从0开始,到4结束,步长为2
  4. print(arr)
  5. #结果为[1 3]
  6. 语法为: arr=n[star:stop:step]

二维数组切片

  1. import numpy as np
  2. n=np.array([[1,2,3,4],[5,6,7,8],[9,0,1,2]])
  3. arr=n[1,2] #索引为1的行,索引为2的列
  4. #逗号之前表示行,逗号之后表示列
  5. print(arr)
  6. #结果为7

四、数组的重塑

更改数组的形状,使用reshape方法实现

  1. import numpy as np
  2. n=np.arange(6)#随机创建一个0~5之间的数组
  3. print(n)
  4. #结果为[0 1 2 3 4 5]
  5. #重塑
  6. n1=n.reshape(2,3)#重塑为两行三列的数组
  7. 结果为[ [0 1 2]
  8.         [3 4 5]]
  1. #多维数组重塑
  2. n=np.array([[1,2,3],[4,5,6]])
  3. #创建了一个两行三列的数组
  4. n1=n.reshape(3,2)
  5. print(n1)
  6. 结果为[[1,2]
  7.         [3,4]
  8.         [5,6]]
  9. #重塑后的 数组所包含的元素个数必须与原数组的元素个数相同,如果元素发生变化,程序报错

五、数组转置

数组的行列转换通过数组的T属性或者transpose方法实现

  1. import numpy as up
  2. n=np.arange(24).reshape(4,6)
  3. #创造一个四行六列的数组
  4. #转置
  5. n2=n.T
  6. #行列进行转换
  7. n3=n.transpose()
  8. #行列转换

六、数组的增删改查

  1. import numpy as np
  2. n1=np.array([[1,2],[3,4],[5,6]])
  3. n2=np.array([[7,8],[9,0],[6,7]])
  4. #水平方向增加数据,原来的两列变成了四列
  5. print(np.hstack(n1,n2))
  6. #垂直方向增加数据,原来的三行变成了六行
  7. print(np.vstack(n1,n2))
  8. #数组的删除操作
  9. #删除第三行
  10. n3=np.delete(n1,2,axis=0)
  11. #axis=0表示行,2表示索引为2的行
  12. #删除第一列
  13. n4=np.delete(n1,0,axis=1)
  14. #删除第三行和第二行
  15. n5=np.delete(n2,(1,2),axis=0)
  16. #修改操作
  17. n2[1]=[20,40]
  18. n2[2][1]=76
  19. #前面是行,后面是列
  20. #查询
  21. #语法可用numpy.where(条件,true,false)
  22. n=np.arange(1,11)#创建一个一到十的一维数组
  23. n6=n[np.where(n>5)]#获取数组中所有大于五的元素
  24. n7=np.where(n>5,1,0)
  25. #若满足条件输出1,不满足输出0

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/620008
推荐阅读
相关标签
  

闽ICP备14008679号