当我尝试在对象类中定义+=
时,我想通过引用修改numpy.ndarray
。
我有以下两个numpy.ndarray
,a1
和a2
的对象:
>>> a1
array([array([ 0.04168576, 0.13111852, 0.91896599]),
array([ 0.81658056, 0.50832376, 1.59519731]),
array([ 0.20646088, 0.13335052, 1.19661452])], dtype=object)
>>> a2
array([array([ 0.25765112, 0.54137219, 0.26067181]),
array([ 0.57738128, 0.45649817, 1.6323892 ]),
array([ 0.2328858 , 0.4922151 , 1.00012122])], dtype=object)
在我的课堂上,我想实现一个self.__iand__
并想要一些写作方式:
a1.append(a2)
给出相当于以下内容的内容:
>>> np.hstack((a1,a2))
array([array([ 0.04168576, 0.13111852, 0.91896599]),
array([ 0.81658056, 0.50832376, 1.59519731]),
array([ 0.20646088, 0.13335052, 1.19661452]),
array([ 0.25765112, 0.54137219, 0.26067181]),
array([ 0.57738128, 0.45649817, 1.6323892 ]),
array([ 0.2328858 , 0.4922151 , 1.00012122])], dtype=object)
并让a1
按引用更改。
我想避免写作
a1 = np.hstack((a1,a2))
因为实际的数组非常大,这适用于蒙特卡罗应用程序,我必须尽可能快地保持性能。
目前,当我尝试实现此功能时,我收到以下错误:
AttributeError: 'numpy.ndarray' object has no attribute 'append'
其他相关问题:
The following Q对于解释函数如何通过引用传递非常有用,但不能解决问题。
Whereas the answer provided by @SvenMarnach提到了这个确切的问题,但未提供任何解决方案。
非常感谢,