gpt4 book ai didi

python - NumPy:使用自定义数据类型时的数组分配问题

转载 作者:太空狗 更新时间:2023-10-30 00:04:04 27 4
gpt4 key购买 nike

我发现 NumPy 和 ndarray 的自定义 dtype 存在以下令人费解的行为:

import numpy as np

# Make a custom dtype with a single triplet of floats (my actual dtype has other
# components, but this suffices to demonstrate the problem.
dt = np.dtype([('a', np.float64, 3)])

# Make a zero array with this dtype:
points = np.zeros((4, 4), dtype=dt)

# Try to edit an entry:
points[0][0]['a'] = np.array([1, 1, 1])

print points[0][0]['a']

现在,返回时不包含 [1. 1. 1.] 如我所料,而是 [1. 0. 0.],只对第一个坐标进行赋值。我可以通过按坐标执行赋值来解决这个问题,但这似乎没有必要,因为在这种情况下,完整赋值当然应该是默认行为。

对这里发生的事情有什么想法吗?

最佳答案

如果您更改索引的顺序,如下所示:points['a'][0][0] = np.array([1, 1, 1]),它会起作用对我来说没问题(Python 2.6.5,Ubuntu 10.04 上的 numpy 1.3.0)。我希望我知道为什么。

关于python - NumPy:使用自定义数据类型时的数组分配问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7219306/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com