飞道的博客

【Python深度学习前传】用NumPy获取数组的值、分片以及改变数组的维度

402人阅读  评论(0)

目录

 

1.  获取数组值和数组的分片

2. 改变数组的维度


1.  获取数组值和数组的分片

NumPy数组也指出与Python列表相同的操作,例如,通过索引获得数组值,分片等。
 

下面的例子演示了如何通过索引获得NumPy数组的值,以及对NumPy数组使用分片操作。
 


  
  1. from numpy import *
  2. # 定义一个二维的NumPy数组
  3. a = array([[ 1, 2, 3],[ 4, 5, 6],[ 7, 8, 9]])
  4. # 输出数组a的第1行第1列的值,运行结果:1
  5. print(a[ 0, 0])
  6. # 运行结果:a[0,1] = 2, a[2,1] = 8
  7. print( "a[0,1] = {}, a[2,1] = {}".format(a[ 0, 1],a[ 2, 1]))
  8. # 分片操作,将3*3的二维数组变成1*3的二维数组,运行结果:[[1 2 3]]
  9. print(a[ 0: 1])
  10. # 分片操作,获取1*3的二维数组的第1行的值,运行结果:[1 2 3]
  11. print(a[ 0: 1][ 0])
  12. # 分片操作,将3*3二维数组变成2*3的二维数组
  13. print(a[ 0: 2])
  14. b = a[ 0:]
  15. # 分片操作,b与a的值是相同的
  16. print(a)
  17. # 分片操作,步长是2
  18. print(a[ 0:: 2])
  19. # 与a[0:2]的结果相同
  20. print(a[ -3: -1])

 程序运行结果如图1所示。

图1  数组的索引和分片操作

2. 改变数组的维度

处理数组的一项重要工作就是改变数组的维度,包括提高数组的维度和降低数组的维度,还包括数组的转置。NumPy提供大量的API可以很轻松地完成这些数组的操作。例如,通过reshape方法可以将一维数组变成二维、三维或者多为数组。通过ravel方法或flatten方法可以将多维数组变成一维数组。改变数组的维度还可以直接设置NumPy数组的shape属性(元组类型),通过resize方法也可以改变数组的维度。通过transpose方法可以对数组进行转置。本节将介绍NumPy中与数组维度相关的常用API的使用方法。

下面的例子演示了如何利用NumPy中的API对数组进行维度操作。


  
  1. from numpy import *
  2. b = arange( 24).reshape( 2, 3, 4)
  3. # 将一维数组变成三维数组
  4. print(b)
  5. print( '------------------')
  6. # 将三维数组变成一维数组
  7. b1 = b.ravel()
  8. print(b1)
  9. print( '------------------')
  10. # 将三维数组变成一维数组
  11. b2 = b.flatten()
  12. print(b2)
  13. print( '------------------')
  14. # 将三维数组变成二维数组(6行4列)
  15. b.shape = ( 6, 4)
  16. print(b)
  17. print( '------------------')
  18. # 数组转置
  19. b3 = b.transpose()
  20. print(b3)
  21. print( '------------------')
  22. # 将三维数组变成二维数组(2行12列)
  23. b.resize(( 2, 12))
  24. print(b)

程序运行结果如图2所示。

图2  改变数组的维度

 


转载:https://blog.csdn.net/nokiaguy/article/details/115689176
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场