python - 在python中制作数组的副本
问题描述
我正在尝试在 python 中制作一个 numpy 数组的副本。然后我想更改新数组的一些值,但是不知何故这也会改变原来的?
为什么下面的代码不正确?
import numpy as np
a = np.array([1,1])
print("Array a:",a)
b = a
b[0] = a[0]*2
print("Array b after manipulation:", b)
print("Array a, after manipulating array b", a)
我可以使它工作的唯一方法是通过列表推导。
import numpy as np
a = np.array([1,1])
print("Array a:",a)
b = [x for x in a]
b[0] = a[0]*2
print("Array b after manipulation:", b)
print("Array a, after manipulating array b", a)
解决方案
Python 中的赋值语句不会复制对象,您需要使用copy()
:
b = a.copy()
推荐阅读
- python - Python 绑定 libimobiledevice 库
- javascript - 使用两种协议进行电子深度链接
- ssl - 使用然后删除自签名证书 localhost
- reactjs - 使用 next-translate 和 i18n 测试组件
- kubernetes - After certificates renewal, an error: "You must be logged in to the server (Unauthorized)"
- javascript - 有没有办法使用 jquery 和 js 从项目外部更改反应事件?
- python - ubuntu 中的规范识别错误
- python - 为什么 android 上的 kivy 应用程序会生成 Swiftclient 异常(需要 python-keystoneclient)但可以在桌面(Windows)上运行?
- flutter - 如何从 html 获取整个顶部而不是顶部?
- snowflake-cloud-data-platform - 雪花复制命令以将默认值替换为 null