我试图用现有数组的元素创建一个新数组。我不断收到:ValueError:使用缓冲区设置对象成员的void-array。在尝试创建数组时尝试使用numpy保持ValueError
import numpy as np
import datetime
date = datetime.date(2013, 4, 5)
results = [(date,0,1,2,3), (date,5,1,5,6), (date,3,4,4,7)]
stock_dt = np.dtype([('date', object),
('open', np.int8),
('high', np.int8),
('low', np.int8),
('close', np.int8)])
d = np.array(results, dtype=stock_dt)
matches = []
for item in d:
if item['high'] == 1:
matches.append(item)
rec = np.array(matches, dtype=stock_dt)
print rec
如何使用第二个答案使用多个参数? – Wallace 2013-03-28 02:45:02
'd [d ['high'] == 1]'正在做的是使用'd ['high'] == 1'创建的布尔列表对数组'd'进行索引。要使用多个标准,可以使用'&'和'|'运算符,如'd [(d ['high'] == 1)&(d ['low'] == 2)]''。小心使这些过于复杂,因为它可能很快就无法读取。 – 2013-03-28 02:54:43
完美!谢谢你的帮助!! – Wallace 2013-03-28 02:59:26