为numpy数组分配新值的问题[重复]

Posted

技术标签:

【中文标题】为numpy数组分配新值的问题[重复]【英文标题】:Issue assigning new values to numpy array [duplicate] 【发布时间】: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])

【问题讨论】:

通过简单的***搜索:***.com/questions/19341365/setting-two-arrays-equal 【参考方案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]

【讨论】:

以上是关于为numpy数组分配新值的问题[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何将张量值分配给numpy数组[重复]

基于最后一列值的numpy排序数组[重复]

在 1D NumPy 数组中查找值的索引/位置(具有相同的值)[重复]

NumPy数组中元素的索引[重复]

Numpy:使用字典作为地图有效地替换二维数组中的值

Python 3:将波形数据(字节数组)转换为浮点值的 numpy 数组