3
1 차원 배열에서 0 차원 하위 배열을 슬라이스 할 수 있습니까? I는 A가 N 차원 ndarray
arr
가 arr[0]
A (N-1) 차원 ndarray
반환이 경우, 예를 들어numpy에서 1 차원 배열에서 0 차원 슬라이스를 추출하는 방법
.
나는이x
ndarray
1 차원,
x[0]
는 0 차원 ndarray을 반환하지 않는 경우 그러나
, 오히려 numpy.int64
(x
는 int64
의 포함 된 경우).
최소 예 :
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 입력 작업을하는 일 때문 실현. 모든 기능이 매우 유연하지는 않습니다.
가 나는 방법이 확실하지 않다. 0-d 배열은 Numpy에서 약간 이상합니다. 실제로이 작업을 수행해야하는 이유가 있습니까? – BrenBarn
나는 제로 -d 배열이 "박스형"프리미티브를 갖는 유용한 방법이 될 수 있다고 생각한다. int처럼 함수에 전달할 수있다. 즉, int 형으로 처리 할 수 없다. 이 질문에서 언급했듯이, 분명히 size-1 1-D 슬라이스를 사용하는 것과 같은 해결 방법이 있지만이 방법은 더 장황합니다. – SuperElectric
그래,하지만 문제는 슬라이싱으로 얻을 수 있어야한다는 것입니까? 주변에 제로 카운터를 유지하려는 경우 명시 적으로 생성하여 표시 할 수 있습니다. 제가 말하고자하는 것은 실제로 당신이하는 일은 단순히 카운터를 만들고 증분하는 대신 모든 차원의 배열을 일반적으로 슬라이스하고 증가시키려는 것입니다. – BrenBarn