np.newaxis终极解释

功能:np.newaxis是用来给数组a增加维度的
格式:a[np.newaxis:的组合],如a[:,np.newaxis]a[np.newaxis, np.newaxis, :]
详解:np.newaxis[]中第几位,a.shape的第几维就变成1,a的原来的维度依次往后排。
例子:若a.shape=(a ,b, c)
a[:, np.newaxis].shape= (a, 1, b, c)
a[:, np.newaxis, np.newaxis].shape= (a, 1, 1, b, c)
a[np.newaxis, :].shape= (1, a, b, c)
a[np.newaxis, np.newaxis, :].shape= (1, 1, a, b, c)
a[np.newaxis, :, np.newaxis].shape= (1, a, 1, b, c)
a[np.newaxis, :, np.newaxis, :].shape= (1, a, 1, b, c)
这么多例子应该看明白了吧。。
实例代码
另外,np.newaxis=None,看代码最后一行

import numpy as np

x = np.arange(24).reshape(2, 3, 4)

# print('x:\n', x)
print('x.shape=', x.shape)

# print('x[:, np.newaxis]:\n', x[:, np.newaxis])
print('x[:, np.newaxis].shape=', x[:, np.newaxis].shape)

# print('x[:, np.newaxis, np.newaxis]:\n', x[:, np.newaxis, np.newaxis])
print('x[:, np.newaxis, np.newaxis].shape=', x[:, np.newaxis, np.newaxis].shape)


# print('x:\n', x)
print('x.shape=', x.shape)

# print('x[np.newaxis, :]:\n', x[np.newaxis, :])
print('x[np.newaxis, :].shape=', x[np.newaxis, :].shape)

# print('x[np.newaxis, np.newaxis, :]:\n', x[np.newaxis, np.newaxis, :])
print('x[np.newaxis, np.newaxis, :].shape=', x[np.newaxis, np.newaxis, :].shape)

# print('x[np.newaxis, :, np.newaxis]:\n', x[np.newaxis, :, np.newaxis])
print('x[np.newaxis, :, np.newaxis].shape=', x[np.newaxis, :, np.newaxis].shape)

# print('x[np.newaxis, :, np.newaxis, :]:\n', x[None, :, None, :])
print('x[np.newaxis, :, np.newaxis, :].shape=', x[None, :, None, :].shape)  # 另外,np.newaxis=None
x.shape= (2, 3, 4)
x[:, np.newaxis].shape= (2, 1, 3, 4)
x[:, np.newaxis, np.newaxis].shape= (2, 1, 1, 3, 4)
x.shape= (2, 3, 4)
x[np.newaxis, :].shape= (1, 2, 3, 4)
x[np.newaxis, np.newaxis, :].shape= (1, 1, 2, 3, 4)
x[np.newaxis, :, np.newaxis].shape= (1, 2, 1, 3, 4)
x[np.newaxis, :, np.newaxis, :].shape= (1, 2, 1, 3, 4)

猜你喜欢

转载自blog.csdn.net/lllxxq141592654/article/details/85427351