【问题标题】:Issue assigning new values to numpy array [duplicate]为numpy数组分配新值的问题[重复]
【发布时间】:2019-12-26 22:49:10
【问题描述】:

当我将数据数组分配给新变量并尝试更改新变量中的元素时,我遇到了问题。例如,如果我有数组 y = [1,2,3],我将新数组 y1 的值设置为:y1 = y。然后,我想在不改变 y 的情况下将 y1 的第一个元素更改为 9。但是,当我执行命令 y1[0] = 9 时,它会更改 y1 和 y 的第一个元素。如何在不更改 y 的情况下更改 y1?

这是我的代码示例,

import numpy as np
y = np.array([1,2,3])
y1 = y
y1[0] = 9
print(y1)
print(y)

我预计输出是:

array([9,2,3])
array([1,2,3])

但是,代码返回以下内容

array([9,2,3])
array([9,2,3])

【问题讨论】:

标签: python arrays numpy


【解决方案1】:

使用y.copy() 创建数组的新副本:

import numpy as np

y = np.array([1,2,3])
y1 = y.copy()
y1[0] = 9

print(y1)
print(y)

输出:

[9 2 3]
[1 2 3]

【讨论】:

    猜你喜欢
    • 2014-12-31
    • 2017-06-12
    • 1970-01-01
    • 1970-01-01
    • 2017-06-16
    • 1970-01-01
    • 2010-11-21
    • 2015-02-23
    相关资源
    最近更新 更多