打印时移除array()



在下面的代码中,我想打印x_points和y_points列表,但是当我尝试打印y_points时,我得到类似

的东西
[array(6.), array(6.3248), array(6.6144), array(6.8716), array(7.0992), array(7.3), array(7.4768), array(7.6324), array(7.7696), array(7.8912), array(8.), array(8.0988), array(8.1904), array(8.2776), array(8.3632), array(8.45), array(8.5408), array(8.6384), array(8.7456), array(8.8652), array(9.), array(9.1528), array(9.3264), array(9.5236), array(9.7472), array(10.)]

,我想删除array()部分,这样我就可以将这个列表复制到c++程序中,但我不知道如何删除array()部分

#adds valid x points to the list
i = 0
while i <= valid_x_points:
x_points.append(x_coords[0] + (i * step))
i = i + 1
#calculate the value at given x points and adds them to a list
points = 0
while points < len(x_points):
y_points.append(f_interpid(x_points[points]))
points = points + 1
print(x_points)
print(y_points)

函数numpy.ndarray.tolist()将Numpy数组转换为Python列表。您有一个numpy元素的python列表,因此下面的代码段应该为您提供一个起点

from numpy import array
la = [array(6.), array(6.3248), array(6.6144), array(6.8716), array(7.0992), array(7.3), array(7.4768), array(7.6324), array(7.7696), array(7.8912), array(8.), array(8.0988), array(8.1904), array(8.2776), array(8.3632), array(8.45), array(8.5408), array(8.6384), array(8.7456), array(8.8652), array(9.), array(9.1528), array(9.3264), array(9.5236), array(9.7472), array(10.)]
lb = array(la).tolist()
print(list(lb))

看起来您有一个包含1个元素数组的对象dtype数组。你怎么弄到的?

要从您的显示中重新创建,我使用:

In [341]: array=np.array; res=np.empty(4, object); res[:]=[array(6.), array(6.3248), array(6.6144), array(6.8716)]

该数组的repr显示:

In [342]: res
Out[342]: 
array([array(6.), array(6.3248), array(6.6144), array(6.8716)],
dtype=object)

和它的打印匹配:

In [343]: print(res)
[array(6.) array(6.3248) array(6.6144) array(6.8716)]

,"array"不是无端的装饰。它告诉我们该数组的性质。

将数组转换为数字数组的一种方法是:

In [344]: np.hstack(res)
Out[344]: array([6.    , 6.3248, 6.6144, 6.8716])

编辑

如果它真的是一个数组列表:

In [347]: alist = [array(6.), array(6.3248), array(6.6144), array(6.8716), array(7.0992)]
In [348]: alist
Out[348]: [array(6.), array(6.3248), array(6.6144), array(6.8716), array(7.0992)]
In [349]: print(alist)
[array(6.), array(6.3248), array(6.6144), array(6.8716), array(7.0992)]

hstack仍然工作:

In [350]: np.hstack(alist)
Out[350]: array([6.    , 6.3248, 6.6144, 6.8716, 7.0992])

np.array:

In [351]: np.array(alist)
Out[351]: array([6.    , 6.3248, 6.6144, 6.8716, 7.0992])

你的copy to c++做得怎么样?只是复制粘贴?或者某种缓冲协议?

对于复制-粘贴,tolist格式可能更容易使用:

In [352]: np.array(alist).tolist()
Out[352]: [6.0, 6.3248, 6.6144, 6.8716, 7.0992]

相关内容

最新更新