gpt4 book ai didi

python - arr[ :] in assignment in numpy? 是什么意思

转载 作者:太空狗 更新时间:2023-10-29 21:18:15 26 4
gpt4 key购买 nike

我偶尔会使用 numpy,并且我正努力在向量化操作方面变得更聪明。我正在阅读一些代码并试图理解以下内容的语义:

arr_1[:] = arr_2

在这种情况下,

我知道在 arr[:, 0] 中,我们选择了数组的第一列,但我对 arr_1[:] 之间的区别感到困惑= arr_2arr_1 = arr_2

最佳答案

您的问题涉及基本 Python 语法和 numpy 特定细节的组合。在许多方面,它与列表相同,但不完全相同。

arr[:, 0] 返回 arr(一个 View )的第 1 列,arr[:,0]=10 集该列的值变为 10。

arr[:] 返回 arr(alist[:] 返回列表的副本)。 arr[:]=arr2 执行就地替换;将 arr 的值更改为 arr2 的值。 arr2 的值将根据需要广播和复制。

arr=arr2 设置 arr 变量指向的对象。现在 arrarr2 指向相同的东西(无论是数组、列表还是其他任何东西)。

arr[...]=arr2 在复制所有数据时也有效

在交互式 session 中尝试这些操作。尝试改变 arr2 的形状,看看值是如何传播的。还要检查 id(arr) 以查看变量指向的对象。而 arr.__array_interface__ 可以看到数组的数据缓冲区。这有助于您区分 View 和副本。

关于python - arr[ :] in assignment in numpy? 是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35713891/

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