Есть ли способ нарезать нулевой подмассив из одномерного массива?
Например, если у меня есть N-мерное ndarray
arr
, arr[0]
возвращает (N-1)-мерное ndarray
.
Однако, если у меня есть одномерный 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 входами. Не все функции будут такими гибкими.