A = np.array([[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9],
[10,11,12]])
B = A[:, np.newaxis]
print(B)
print(B.shape)
输出
[[[ 1 2 3]]
[[ 4 5 6]]
[[ 7 8 9]]
[[10 11 12]]]
(4L, 1L, 3L)
我有两个问题:
[[ 1 2 3]]
,为什么它不是[ 1 2 3]
? 1L
是什么意思?我认为B
是一个4X3矩阵,为什么它不是(4L, 3L)
?答案 0 :(得分:4)
参考numpy参考文件(http://docs.scipy.org/doc/numpy/reference/arrays.indexing.html), 选择元组中的每个newaxis对象用于将结果选择的维度扩展一个单位长度维度。添加的维度是newaxis对象在选择元组中的位置。
答案 1 :(得分:2)
“额外”括号和1L是出于同样的原因:你使用np.newaxis
将范围1的新维度插入到数组形状中 - 换句话说,你转换了一个二维4x3数组成为一个三维4x1x3阵列。
B
的4个“行”中的每一个都包含一个二维1x3数组,例如
[[4,5,6]]
而A
的每一对应行只是一个长度为3的一维数组:
[4,5,6]
因此额外的括号。