如何从numpy中的1维数组中提取零维切片

时间:2014-10-10 17:29:41

标签: python numpy slice matrix-indexing

有没有办法从一维数组切割零维子阵列?

例如,如果我有一个N维ndarray arrarr[0]会返回一个(N-1)维ndarray

但是,如果我有一维ndarray xx[0]不会返回0维ndarray,而是返回numpy.int64,(如果x包含int64 s)。

最小例子:

def increment(zero_d_array):
    zero_d_array[...] = zero_d_array + 1

counter = numpy.array(0)  # a zero-dimensional array containing scalar 0
increment(counter)        # success; counter is now 1

counters = numpy.zeros(3, dtype=int)  # [0, 0, 0]
increment(counter[1])    # fails; counter[1] is a numpy.int64, not a 0-D array

我意识到上述内容适用于increment(counter[1:2]),但仅仅因为increment()恰好适用于0-D和1-D输入。并非所有功能都会如此灵活。

1 个答案:

答案 0 :(得分:7)

使用省略号:

increment(counter[1, ...])