VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • python array中关于[a,b,c]的使用方式

不论是用numpy或者是tensorflow,在机器学习的过程中常常会用到[]来提取array中的元素,但是再找了很多的资源之后发现并没有比较好的解释

我在尝试之后给出list[]的用法和解析,希望能帮到大家

以这样的数据为例

list1 = np.arange(24).reshape([2,3,4])
‘'‘
 [[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]
 
 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]
  '‘'

1.[a,b,c]类型
在array中取到了位置[a,b,c]的元素,不多做解释。

print(list1[1,1,1]) 
# 17

2.[]中含有‘:’符号
只有:时,代表取某一维度的全部元素

:前后有数字时,相当于把那维当做一个list,1:3就代表取索引1,2的元素

其中的关系给出两个例子,大家可以思考其中的原理

print(list1[:,:,1]) # 代表取出前两个维度的所有元素,只要第三维度的1索引元素'‘
[[ 1  5  9]
 [13 17 21]]
''
 
print(list1[:,1:3,-1]) # 取出第一个维度所有元素,第二个维度的索引1和2的元素,第三个维度倒数第一个的元素
'''
[[ 7 11]
 [19 23]]
'''

3.None出现的时候
None是用来增加维度的,在哪里出现就给哪里增加1维

print(list1)
print(list1[None]) # 相当于在最前面增加一维
print(list1[None].shape)
'''
[[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]
 
 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]
[[[[ 0  1  2  3]
   [ 4  5  6  7]
   [ 8  9 10 11]]
 
  [[12 13 14 15]
   [16 17 18 19]
   [20 21 22 23]]]]
(1, 2, 3, 4)
'''
 
print(list1)
print(list1[:,:,None])
print(list1[:,:,None].shape)
 
‘'‘
[[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]
 
 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]
[[[[ 0  1  2  3]]
 
  [[ 4  5  6  7]]
 
  [[ 8  9 10 11]]]
 
 
 [[[12 13 14 15]]
 
  [[16 17 18 19]]
 
  [[20 21 22 23]]]]
(2, 3, 1, 4)
''

None的作用于np.newaxis的作用是一样的

下面给出一个例子,大家可以体会一下:

print(list1)
print(list1[None,])
print(list1[None,].shape)
print(list1[np.newaxis,:])
print(list1[np.newaxis,:].shape)'‘
[[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]
 
 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]
[[[[ 0  1  2  3]
   [ 4  5  6  7]
   [ 8  9 10 11]]
 
  [[12 13 14 15]
   [16 17 18 19]
   [20 21 22 23]]]]
(1, 2, 3, 4)
[[[[ 0  1  2  3]
   [ 4  5  6  7]
   [ 8  9 10 11]]
 
  [[12 13 14 15]
   [16 17 18 19]
   [20 21 22 23]]]]
(1, 2, 3, 4)
''

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

原文链接:https://blog.csdn.net/weixin_38611497/article/details/84574262


相关教程