将列表元素附加到symarray

时间:2013-05-14 14:37:23

标签: python sympy

我正在尝试将一些numpy数组添加到一个数组中,我的代码如下:

m1=symarray('', 2)
for i in range(0,len(countersum)):
  if countersum[i]==1:
    m1.append(gmcounter[i])

这给出了错误

AttributeError: 'numpy.ndarray' object has no attribute 'append'

我也尝试过更改附加到vstack,但它会出现同样的错误

如果我修改最后一行以使m1 = gcounter [i]它可以工作,但只选择符合条件的gcounter的第一个元素,然后忽略所有内容。

有谁知道如何解决这个问题?

我见过线程Append a NumPy array to a NumPy array,但我无法事先声明我需要附加为numpy数组。

非常感谢

1 个答案:

答案 0 :(得分:1)

@Bakuriu是正确的,你不能在没有复制的情况下扩展numpy数组。但是,根据应用程序的不同,您可以将numpy数组转换为列表并从那里进行操作:

m1 = sympy.symarray('', 2)

m2 = list(m1)
x = sympy.symbols('x')
m2.append(x)

print m2

这给出了

>>> [_0, _1, x]