我有一个阵列吧

`(datetime.datetime(2017, 4, 27, 0, 0), 2970.0, 3018.0, 2958.0, 3016.0, 4814822.0),
(datetime.datetime(2017, 4, 28, 0, 0), 3035.0, 3115.0, 3026.0, 3115.0, 6604372.0)],
 dtype=[('Timestamp', 'O'), ('open', '<f8'), ('high', '<f8'), ('low', '<f8'), ('close', '<f8'), ('atr', '<f8')])`


我想将其硬拷贝到另一个数组中,并更改目标数组的列名:

destBars = bars.copy()
destBars.dtype.names=['Timestamp','hl','oh','ol','tr','atr']
bars.dtype.names
('Timestamp', 'hl', 'oh', 'ol', 'tr', 'atr')


但是之后,bars列也发生了变化。这不是我所期望的,我希望bars.dtype.names保持不变。

有人可以解释什么是错的,我该怎么办?

最佳答案

代替copy,使用deepcopy模块的copy

尝试下面的代码并检查

import copy
destBars = copy.deepcopy(bars)

关于python - 复制数组并保留其列名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44204301/

10-12 23:23