Numpy ndarray hstack参考

时间:2016-05-08 12:02:43

标签: python arrays numpy reference overloading

当我尝试在对象类中定义+=时,我想通过引用修改numpy.ndarray

我有以下两个numpy.ndarraya1a2的对象:

>>> 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提到了这个确切的问题,但未提供任何解决方案。

非常感谢,

0 个答案:

没有答案