翼度科技»论坛 编程开发 python 查看内容

python array中关于[a,b,c]的使用方式

5

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
不论是用numpy或者是tensorflow,在机器学习的过程中常常会用到[]来提取array中的元素,但是再找了很多的资源之后发现并没有比较好的解释
我在尝试之后给出list[]的用法和解析,希望能帮到大家

以这样的数据为例
  1. list1 = np.arange(24).reshape([2,3,4])
  2. ‘'‘
  3. [[[ 0  1  2  3]
  4.   [ 4  5  6  7]
  5.   [ 8  9 10 11]]

  6. [[12 13 14 15]
  7.   [16 17 18 19]
  8.   [20 21 22 23]]]
  9.   '‘'
复制代码
1.[a,b,c]类型

在array中取到了位置[a,b,c]的元素,不多做解释。
  1. print(list1[1,1,1])
  2. # 17
复制代码
2.[]中含有‘:’符号

只有:时,代表取某一维度的全部元素
:前后有数字时,相当于把那维当做一个list,1:3就代表取索引1,2的元素
其中的关系给出两个例子,大家可以思考其中的原理
  1. print(list1[:,:,1]) # 代表取出前两个维度的所有元素,只要第三维度的1索引元素
  2. ‘'‘
  3. [[ 1  5  9]
  4. [13 17 21]]
  5. '‘'

  6. print(list1[:,1:3,-1]) # 取出第一个维度所有元素,第二个维度的索引1和2的元素,第三个维度倒数第一个的元素
  7. '''
  8. [[ 7 11]
  9. [19 23]]
  10. '''
复制代码
3.None出现的时候

None是用来增加维度的,在哪里出现就给哪里增加1维
  1. print(list1)
  2. print(list1[None]) # 相当于在最前面增加一维
  3. print(list1[None].shape)
  4. '''
  5. [[[ 0  1  2  3]
  6.   [ 4  5  6  7]
  7.   [ 8  9 10 11]]

  8. [[12 13 14 15]
  9.   [16 17 18 19]
  10.   [20 21 22 23]]]
  11. [[[[ 0  1  2  3]
  12.    [ 4  5  6  7]
  13.    [ 8  9 10 11]]

  14.   [[12 13 14 15]
  15.    [16 17 18 19]
  16.    [20 21 22 23]]]]
  17. (1, 2, 3, 4)
  18. '''

  19. print(list1)
  20. print(list1[:,:,None])
  21. print(list1[:,:,None].shape)

  22. ‘'‘
  23. [[[ 0  1  2  3]
  24.   [ 4  5  6  7]
  25.   [ 8  9 10 11]]

  26. [[12 13 14 15]
  27.   [16 17 18 19]
  28.   [20 21 22 23]]]
  29. [[[[ 0  1  2  3]]

  30.   [[ 4  5  6  7]]

  31.   [[ 8  9 10 11]]]


  32. [[[12 13 14 15]]

  33.   [[16 17 18 19]]

  34.   [[20 21 22 23]]]]
  35. (2, 3, 1, 4)
  36. '‘'
复制代码
None的作用于np.newaxis的作用是一样的
下面给出一个例子,大家可以体会一下:
  1. print(list1)
  2. print(list1[None,])
  3. print(list1[None,].shape)
  4. print(list1[np.newaxis,:])
  5. print(list1[np.newaxis,:].shape)

  6. ‘'‘
  7. [[[ 0  1  2  3]
  8.   [ 4  5  6  7]
  9.   [ 8  9 10 11]]

  10. [[12 13 14 15]
  11.   [16 17 18 19]
  12.   [20 21 22 23]]]
  13. [[[[ 0  1  2  3]
  14.    [ 4  5  6  7]
  15.    [ 8  9 10 11]]

  16.   [[12 13 14 15]
  17.    [16 17 18 19]
  18.    [20 21 22 23]]]]
  19. (1, 2, 3, 4)
  20. [[[[ 0  1  2  3]
  21.    [ 4  5  6  7]
  22.    [ 8  9 10 11]]

  23.   [[12 13 14 15]
  24.    [16 17 18 19]
  25.    [20 21 22 23]]]]
  26. (1, 2, 3, 4)
  27. '‘'
复制代码
总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。                                                           

来源:https://www.jb51.net/python/3162577o6.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具