zl程序教程

您现在的位置是:首页 >  后端

当前栏目

numpy中特定行数和列数的截取【矩阵任意截】

numpy 矩阵 截取 任意 特定 行数 列数
2023-09-14 09:13:09 时间
'''
Description: numpy中特定行数和列数的截取【矩阵任意截!】
Autor: 365JHWZGo
Date: 2021-11-12 16:34:19
LastEditors: 365JHWZGo
LastEditTime: 2021-11-12 17:06:46
'''

import numpy as np

#create some data
arr = np.linspace(1,30,30).reshape(5,6)

#print data
print('原始数据:\n',arr)
'''
原始数据:
 [[ 1.  2.  3.  4.  5.  6.]
 [ 7.  8.  9. 10. 11. 12.]
 [13. 14. 15. 16. 17. 18.]
 [19. 20. 21. 22. 23. 24.]
 [25. 26. 27. 28. 29. 30.]]
 '''

#截取第一行和第一列之后的全部数据
changeArr1 = arr[1:,1:]
print('第一行和第一列之后的全部数据:\n',changeArr1)
'''
第一行和第一列之后的全部数据:
 [[ 8.  9. 10. 11. 12.]
 [14. 15. 16. 17. 18.]
 [20. 21. 22. 23. 24.]
 [26. 27. 28. 29. 30.]]
 '''

#截取第一行中第一列之后的数据
changeArr2 = arr[1,1:]
print('第一行中第一列之后的数据:\n',changeArr2)
'''
第一行中第一列之后的数据:
 [ 8.  9. 10. 11. 12.]
'''

#每行间隔一个截取全部数组
changeArr3 = arr[::2]
print('每行间隔一个截取全部数组:\n',changeArr3)
'''
每行间隔一个截取全部数组:
 [[ 1.  2.  3.  4.  5.  6.]
 [13. 14. 15. 16. 17. 18.]
 [25. 26. 27. 28. 29. 30.]]
 '''

#每列间隔一个截取全部数组
changeArr4 = arr[:,::2]
print('每列间隔一个截取全部数组:\n',changeArr4)
'''
每列间隔一个截取全部数组:
 [[ 1.  3.  5.]
 [ 7.  9. 11.]
 [13. 15. 17.]
 [19. 21. 23.]
 [25. 27. 29.]]
 '''

#多维矩阵截取
arr1 = np.linspace(1,30,30).reshape(2,3,5)
print('原始数据:\n',arr1)
'''
原始数据:
 [[[ 1.  2.  3.  4.  5.]
  [ 6.  7.  8.  9. 10.]
  [11. 12. 13. 14. 15.]]

 [[16. 17. 18. 19. 20.]
  [21. 22. 23. 24. 25.]
  [26. 27. 28. 29. 30.]]]
'''

#截取所有第二维中第二行的前三个数
changeArr5 = arr1[:,1,:3]
print('所有第二维中第二行的前三个数:\n',changeArr5)
'''
所有第二维中第二行的前三个数:
 [[ 6.  7.  8.]
 [21. 22. 23.]]
'''

在这里插入图片描述
在这里插入图片描述
总结:

  1. 亲爱的小伙伴们,有没有看出来逗号的特别呢?
  2. 每一个逗号分隔一个维度
  3. 而一个逗号内可以写两个冒号,格式为【起始点:终止点:移动步数】
  4. 觉得有意思的话,快来试一试吧
  5. 欢迎看我以前写的理解 a[:,time_step,:] 和 a[:time_step:],这个是神经网络中的应用。