【发布时间】:2021-04-12 01:29:41
【问题描述】:
假设我已经定义了一个数据类型,如下:
class mytype(object):
def __init__(self, x=1, y=2, z=3):
self.x = x
self.y = y
self.z = z
我有一个 mytype 类型的 numpy 数组,定义为:
my_array = np.array([mytype()]*1000)
我的问题是:如何提取上面定义的 numpy 数组的值并将其设置为 np.float64 类型的 numpy 数组更有效?我发现当数组很大时使用列表理解非常慢,我想一定有一些好的方法来完成这项工作。谁能帮帮我
【问题讨论】:
-
如果您想要 numpy 速度,请创建一个 (1000,3) 形状的浮点数组,或者可能是具有 3 个字段的结构化数组。带有
objects的数组比列表好一点,也许更糟。 -
[mytype()]*1000)创建一个包含 1000 个对同一对象的引用的列表。尝试修改一个,看看我的意思。
标签: python numpy optimization