scipy 打印时删除数组()

0h4hbjxa  于 2022-11-10  发布在  其他
关注(0)|答案(2)|浏览(162)

在下面的代码中,我想打印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)
u4dcyp6a

u4dcyp6a1#

函数numpy.ndarray.tolist()将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))
yptwkmov

yptwkmov2#

看起来你有一个包含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)]

这个“阵”并不是毫无意义的装饰,它告诉了我们这个阵的一些本质。
将这样的数组转换为数值数组的一种方法是:

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]

相关问题