簡體   English   中英

試圖在Python中理解此語句

[英]Trying to understand this statement in Python

我在Python中遇到了以下語句:

a = m[:,1].a - m[:,0].a

如果我刪除了.a部分,則說明我們正在嘗試從第二列中減去數組中的第一列。

添加.a什么用?

謝謝。

在寫我的評論時,我意識到這種表示法與recarray是一致的。

用幾個字段定義一個dtype

In [28]: dt = np.dtype([('a',int),('b',float)])

初始化recarray這個dtype

In [29]: arr = np.ones((3,2), dtype=dt).view(np.recarray)
In [30]: arr['a'] = np.arange(6).reshape(3,2)
In [31]: arr
Out[31]: 
rec.array([[(0,  1.), (1,  1.)],
           [(2,  1.), (3,  1.)],
           [(4,  1.), (5,  1.)]], 
          dtype=[('a', '<i4'), ('b', '<f8')])
In [32]: arr.a
Out[32]: 
array([[0, 1],
       [2, 3],
       [4, 5]])

可以使用arr['a']arr.a (結構化數組或recarray屬性)訪問第一個字段。 現在我們可以編寫一個像您這樣的表達式:

In [34]: arr[:,0].a - arr[:,1].a
Out[34]: array([-1, -1, -1])

結構化數組在SO上很常見,尤其是從CSV文件加載數據時。 recarray變體實際上可能更舊,但已不使用。 例如, recfunctions庫需要特殊的導入。 顯然,屬性符號不是那么特殊或有用。

如果這不正確,您需要向我們詳細說明報價來源。

暫無
暫無

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

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