numpy中除了可以用newaxis、expand_dim函数扩充维度(参考链接),还可以用None扩充维度。
示例:
我们也可以用这个方法来实现某个维度的内部相减,例如对于2维数组,有第0维(即行)和第1维(即列),我们可以用下面的方法实现用其他列减去第2列的想法:
import numpy as np e = np.arange(12).reshape([3, 4]) print('e: ', e) f = e[:, 2] print(' f: ', f) g = f[:, None] print(' g: ', g) print(' e-g: ', e-g)
运行结果:
对于三维数组以及高维数组,也可以用同样的方法实现:
import numpy as np a = np.arange(24).reshape([2, 3, 4]) print('a: ', a) b = a[:, 1, :] print(' b: ', b) c = b[:, None, :] print(' c: ', c) print(' a-c: ', a-c)
运行结果: