切片[:, None, None]的含义

这篇博客详细介绍了numpy库中利用`None`进行数组维度变化的操作,如a[:,None]将一维数组变为二维,而a[:,None,None]进一步增加维度。通过实例解析了如何通过None来动态调整数组的维度,适用于数据处理和机器学习场景中的矩阵操作。
摘要由CSDN通过智能技术生成

[:, None, None]是改变数组维度的方式
假设:

a = np.array([1,2,3])

进行下面操作

a[:,None]

结果为:

Out[35]: 
array([[1],
       [2],
       [3]])

也就是一维变成二维的了,
如果:

a[:,None,None]

大家猜猜结果是什么?
第一个冒号代表切片,把一维a的元素全部切完,然后第二个为None,表示把一维变成二维并且第二个维度上的值为0,第三个元素为None,表示增加一个维度,并且该维度值为0
所以a[:,None,None]结果为:

Out[36]: 
array([[[1]],
       [[2]],
       [[3]]])

a[:,None,None,None]

呢?结果为:

Out[37]: 
array([[[[1]]],
       [[[2]]],
       [[[3]]]])

如果我们本来的数组是二维的,例如:

a=[[3,3,3],[4,4,4],[5,5,5]]
a[:,None]   结果为:
Out[27]: 
array([[[3, 3, 3]],
       [[4, 4, 4]],
       [[5, 5, 5]]])

只有一个None,维度就升了一维

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值