Cur*_*arn 0 python numpy recarray
我正在尝试学习如何使用numpy的结构化数组.具体来说,我试图一次向多个字段添加信息.我试过了:
import numpy as np
numrec = np.zeros(8, dtype=[('col0', 'int16'), ('col1', 'int16'),
('col2', 'int16'), ('col3', 'int16')])
numrec[['col1','col2']][0:2] = [(3,5), (1,8)]
print numrec
Run Code Online (Sandbox Code Playgroud)
以上不起作用.这些值不会添加到指定的列中.令人惊讶的是,当我运行它时,我没有收到任何错误.有人可以解释一下发生了什么吗?
谢谢.
您正在设置临时值.
numrec[["col1", "col2"]]
Run Code Online (Sandbox Code Playgroud)
返回数组的副本.你可以通过OWNDATA标志看到这一点.
>>> numrec[["col1", "col2"]].flags["OWNDATA"]
True
Run Code Online (Sandbox Code Playgroud)
使用列表索引numpy数组时,numpy会返回数据的副本.它必须是副本,因为通常,列表可能无法解析为基础数据的常规有序视图.(这适用于任何numpy数组,而不仅仅是结构化数组.)
相比
>>> numrec[["col1"]].flags["OWNDATA"]
True
>>> numrec["col1"].flags["OWNDATA"]
False
Run Code Online (Sandbox Code Playgroud)
此外,如果numpy数组是视图,则基本成员将保存基础数组.
>>> id(numrec["col1"].base) == id(numrec)
True
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
486 次 |
| 最近记录: |