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)
运行结果: