繁体   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