[英]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.