有没有办法从一维数组中分割一个零维子数组?
例如,如果我有一个 N 维ndarray
arr
,则arr[0]
返回一个 (N-1) 维ndarray
。
但是,如果我有 1 维ndarray
x
,x[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 输入。并非所有功能都如此灵活。