Python Numpy数组运算符x + = y与x = x + y不同吗?

安尼卡姆

当我运行以下代码时:

import numpy as np
v = np.array([1, 1, 1])
u_list = [v]

for i in range(2):
  v += np.array([i, i, i])
  u_list.append(v)

return u_list

退货 [array([2, 2, 2]), array([2, 2, 2]), array([2, 2, 2])]

但是,如果我运行相同的代码,v = v + np.array([i, i, i])则返回第5行[array([1, 1, 1]), array([1, 1, 1]), array([2, 2, 2])]

为什么是这样?

迈克·米勒

v += 更改数组到位

import numpy as np
v = np.array([1, 1, 1])
u_list = [v]

print(id(v))
for i in range(2):
    v += np.array([i, i, i])
    u_list.append(v)
    print(id(v))

印刷:

4460459392
4460459392
4460459392

所有数组都具有相同的ID,因此它只是您引用3次的一个数组。

v = v + 制作一个新数组:

v = np.array([1, 1, 1])
u_list = [v]

print(id(v))
for i in range(2):
    v = v + np.array([i, i, i])
    u_list.append(v)
    print(id(v))

印刷:

4462915792
4462918592
4462919072

数组具有不同的ID。因此,它们是不同的对象。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python Numpy数组运算符x + = y与x = x + y不同吗?

来自分类Dev

等于运算符重载:(x!= y)==(!(x == y))?

来自分类Dev

朱莉娅(x:y)运算符

来自分类Dev

为什么在Python中x * = y比x = x * y慢?

来自分类Dev

识别python x,y数组中的x,y坐标对

来自分类Dev

(* x).y与x-> y相同吗?

来自分类Dev

python:x不是this或this运算符

来自分类Dev

Python,如果x为y

来自分类Dev

Python:x == y和x .__ eq__y()返回不同内容的情况。为什么?

来自分类Dev

python x。** y与math.pow(x,y)的指数

来自分类Dev

Python中的效率:a = array [x] [y] vs array [x] [y]

来自分类Dev

x + = y与x = x + y之差

来自分类Dev

x + = y和x = x + y之差

来自分类Dev

当y为0时,模运算符x%y的语义是什么?

来自分类Dev

当y为0时,模运算符x%y的语义是什么?

来自分类Dev

R是否等于python中zip [i,j]中x,y的[x [y] for x,y]?

来自分类Dev

为什么在python 3.8中sqrt(x * x + y * y)!= math.hypot(x,y)?

来自分类Dev

x |之间的差异 y和y <(x)以bash表示吗?

来自分类Dev

(x % y) 和 (x & (y-1)) 等价吗?

来自分类Dev

Python:[如果f(x)不为空,则list_of_tuples中(x,y)中的(x,y)为[(x,y)]

来自分类Dev

Python:[如果f(x)不为空,则list_of_tuples中(x,y)中的(x,y)为[(x,y)]

来自分类Dev

警告:X的默认移动分配运算符将多次移动分配虚拟基类Y

来自分类Dev

如何将C数学运算符(+-* /%)传递给函数result = mathfunc(x,+,y);?

来自分类Dev

X和Y或Z-三元运算符

来自分类Dev

运算符'=='不能应用于Typescript 2中的x和y类型

来自分类Dev

在没有算术运算符的情况下计算x * y

来自分类Dev

在没有算术运算符的情况下计算x / y

来自分类Dev

C中针对语句z = ++ x || ++ y && ++ z的运算符优先级

来自分类Dev

Node / Express / Nunjucks:TypeError:无法使用“in”运算符在“y”中搜索“x”

Related 相关文章

  1. 1

    Python Numpy数组运算符x + = y与x = x + y不同吗?

  2. 2

    等于运算符重载:(x!= y)==(!(x == y))?

  3. 3

    朱莉娅(x:y)运算符

  4. 4

    为什么在Python中x * = y比x = x * y慢?

  5. 5

    识别python x,y数组中的x,y坐标对

  6. 6

    (* x).y与x-> y相同吗?

  7. 7

    python:x不是this或this运算符

  8. 8

    Python,如果x为y

  9. 9

    Python:x == y和x .__ eq__y()返回不同内容的情况。为什么?

  10. 10

    python x。** y与math.pow(x,y)的指数

  11. 11

    Python中的效率:a = array [x] [y] vs array [x] [y]

  12. 12

    x + = y与x = x + y之差

  13. 13

    x + = y和x = x + y之差

  14. 14

    当y为0时,模运算符x%y的语义是什么?

  15. 15

    当y为0时,模运算符x%y的语义是什么?

  16. 16

    R是否等于python中zip [i,j]中x,y的[x [y] for x,y]?

  17. 17

    为什么在python 3.8中sqrt(x * x + y * y)!= math.hypot(x,y)?

  18. 18

    x |之间的差异 y和y <(x)以bash表示吗?

  19. 19

    (x % y) 和 (x & (y-1)) 等价吗?

  20. 20

    Python:[如果f(x)不为空,则list_of_tuples中(x,y)中的(x,y)为[(x,y)]

  21. 21

    Python:[如果f(x)不为空,则list_of_tuples中(x,y)中的(x,y)为[(x,y)]

  22. 22

    警告:X的默认移动分配运算符将多次移动分配虚拟基类Y

  23. 23

    如何将C数学运算符(+-* /%)传递给函数result = mathfunc(x,+,y);?

  24. 24

    X和Y或Z-三元运算符

  25. 25

    运算符'=='不能应用于Typescript 2中的x和y类型

  26. 26

    在没有算术运算符的情况下计算x * y

  27. 27

    在没有算术运算符的情况下计算x / y

  28. 28

    C中针对语句z = ++ x || ++ y && ++ z的运算符优先级

  29. 29

    Node / Express / Nunjucks:TypeError:无法使用“in”运算符在“y”中搜索“x”

热门标签

归档