numpy中用None扩充维度

numpy中除了可以用newaxis、expand_dim函数扩充维度(参考链接),还可以用None扩充维度。

示例:

我们也可以用这个方法来实现某个维度的内部相减,例如对于2维数组,有第0维(即行)和第1维(即列),我们可以用下面的方法实现用其他列减去第2列的想法:

import numpy as np
e = np.arange(12).reshape([3, 4])
print('e:\n', e)

f = e[:, 2]
print('\nf:\n', f)

g = f[:, None]
print('\ng:\n', g)

print('\ne-g:\n', e-g)

运行结果:

对于三维数组以及高维数组,也可以用同样的方法实现:

import numpy as np
a = np.arange(24).reshape([2, 3, 4])
print('a:\n', a)

b = a[:, 1, :]
print('\nb:\n', b)

c = b[:, None, :]
print('\nc:\n', c)

print('\na-c:\n', a-c)

运行结果:

 

posted @ 2020-11-27 10:47  Picassooo  阅读(732)  评论(0编辑  收藏  举报