【问题标题】:Funny behavior of operator overloading in Python numpyPython numpy 中运算符重载的有趣行为
【发布时间】:2017-03-25 06:02:03
【问题描述】:

假设我有一个 python 数组和一个 numpy 数组

import numpy as np
python_array = [range(20), range(20), range(20)] 
numpy_array = np.array(python_array)

你可以这样做:

numpy_array + python_array

但是,这给出了相同的结果:

python_array + numpy_array

而 python 数组的 __add__ 只是串联。事实上,如果你这样做:

python_array.\__add__(numpy_array)

它给出:

 can only concatenate list (not "numpy.ndarray") to list

谁能给我解释一下?

【问题讨论】:

标签: python list numpy


【解决方案1】:

如果a 不理解操作,b 也有一个__radd__ 方法来实现a + b。你看到的是numpy.ndarray.__radd__

【讨论】:

  • 这是我怀疑的,但我不知道有__radd__。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-21
  • 1970-01-01
  • 1970-01-01
  • 2013-03-05
  • 2010-12-28
相关资源
最近更新 更多