数组切片中三个点(...)以及两个冒号(::-1)的含义

"""
1.对比一下c和d或者bb和cc可以知道三个点的作用就是省略了前面所有的:,(冒号与逗号)
2.对比一下b以及c或者bb和cc可以知道::-1的作用,即为使这一维度的元素倒序
3.注意三个点省略的格式必须是n个冒号以n-1个逗号
"""
import numpy as  np
np.random.seed(0)
a = np.random.randn(3,2,3)
b = a[:, :, -1:-a.shape[2]-1:-1]  #
c = a[:, :, ::-1]
d = a[...,::-1]
print('b:\n_____\n', b)
print('c:\n_____\n', c)
print('d:\n_____\n', d)
print("\nc==d吗?\n_____\n", c == d)
print("\nb==c吗?\n_____\n", b == c)


aa = np.random.randn(6)
bb = aa[::-1]
cc = aa[-1:-len(aa)-1:-1]
dd = aa[...]  # 注意三个点省略的格式必须是n个冒号以n-1个逗号
print('aa:\n_____\n', aa)
print('bb:\n_____\n', bb)
print('cc:\n_____\n', cc)
print('dd:\n_____\n', dd)
print("\ncc==bb吗?\n_____\n", cc == bb)
print("\ndd==aa吗?\n_____\n", dd == aa)

b:
_____
 [[[ 0.97873798  0.40015721  1.76405235]
  [-0.97727788  1.86755799  2.2408932 ]]

 [[-0.10321885 -0.15135721  0.95008842]
  [ 1.45427351  0.14404357  0.4105985 ]]

 [[ 0.44386323  0.12167502  0.76103773]
  [-0.20515826  1.49407907  0.33367433]]]
c:
_____
 [[[ 0.97873798  0.40015721  1.76405235]
  [-0.97727788  1.86755799  2.2408932 ]]

 [[-0.10321885 -0.15135721  0.95008842]
  [ 1.45427351  0.14404357  0.4105985 ]]

 [[ 0.44386323  0.12167502  0.76103773]
  [-0.20515826  1.49407907  0.33367433]]]
d:
_____
 [[[ 0.97873798  0.40015721  1.76405235]
  [-0.97727788  1.86755799  2.2408932 ]]

 [[-0.10321885 -0.15135721  0.95008842]
  [ 1.45427351  0.14404357  0.4105985 ]]

 [[ 0.44386323  0.12167502  0.76103773]
  [-0.20515826  1.49407907  0.33367433]]]

c==d吗?
_____
 [[[ True  True  True]
  [ True  True  True]]

 [[ True  True  True]
  [ True  True  True]]

 [[ True  True  True]
  [ True  True  True]]]

b==c吗?
_____
 [[[ True  True  True]
  [ True  True  True]]

 [[ True  True  True]
  [ True  True  True]]

 [[ True  True  True]
  [ True  True  True]]]
aa:
_____
 [ 0.3130677  -0.85409574 -2.55298982  0.6536186   0.8644362  -0.74216502]
bb:
_____
 [-0.74216502  0.8644362   0.6536186  -2.55298982 -0.85409574  0.3130677 ]
cc:
_____
 [-0.74216502  0.8644362   0.6536186  -2.55298982 -0.85409574  0.3130677 ]
dd:
_____
 [ 0.3130677  -0.85409574 -2.55298982  0.6536186   0.8644362  -0.74216502]

cc==bb吗?
_____
 [ True  True  True  True  True  True]

dd==aa吗?
_____
 [ True  True  True  True  True  True]
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值