簡體   English   中英

帶逗號的 Python 數組切片?

[英]Python Array Slice With Comma?

我想知道在切片 Python 數組時逗號的用途是什么 - 我有一個似乎有效的示例,但對我來說看起來很奇怪的那一行是

p = 20*numpy.log10(numpy.abs(numpy.fft.rfft(data[:2048, 0])))

現在,我知道切片數組時,第一個數字是開始,下一個數字是結束,最后一個是步驟,但是結束數字后面的逗號表示什么? 謝謝。

它用於從二維數組中提取特定 請參閱此處的第一個示例。

因此,您的示例將從前 2048 行(0 到 2047)中提取第 0 列(第一列)。 但是請注意,此語法僅適用於 numpy 數組,而不適用於一般的 Python 列表。

根據經驗 - 使用 numpy 創建一個數組

m = np.fromfunction(lambda i, j: (i +1)* 10 + j + 1, (9, 4), dtype=int)

它將一個像下面這樣的數組分配給m

array(
      [[11, 12, 13, 14],
       [21, 22, 23, 24],
       [31, 32, 33, 34],
       [41, 42, 43, 44],
       [51, 52, 53, 54],
       [61, 62, 63, 64],
       [71, 72, 73, 74],
       [81, 82, 83, 84],
       [91, 92, 93, 94]])

現在為切片

m[:,0]

給我們

array([11, 21, 31, 41, 51, 61, 71, 81, 91])

我可能誤解了可汗學院(所以請保留一粒鹽):

在線性代數術語中, m[:,n]取矩陣mnth列向量

請參閱 Abhranil 的注釋,說明此特定解釋如何僅適用於 numpy

它用元組切片。 元組的確切含義取決於被切片的對象。 在 NumPy 數組中,它對 n 維數組執行 m 維切片。

>>> class C(object):
...   def __getitem__(self, val):
...     print val
... 
>>> c = C()
>>> c[1:2,3:4]
(slice(1, 2, None), slice(3, 4, None))
>>> c[5:6,7]
(slice(5, 6, None), 7)

暫無
暫無

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

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