簡體   English   中英

如何從numpy中的1維數組中提取零維切片

[英]how to extract a zero-dimensional slice from a 1-dimensional array in numpy

有沒有辦法從一維數組切割零維子陣列?

例如,如果我有一個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輸入。 並非所有功能都會如此靈活。

使用省略號:

increment(counter[1, ...])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM