Python 如何仅调用numpy数组的内容?

Python 如何仅调用numpy数组的内容?,python,arrays,numpy,Python,Arrays,Numpy,我有一大堆 array = [array([ 4.12101269], dtype=float32), array([ 4.44119978], dtype=float32), array([ 4.30688763], dtype=float32), array([ 4.80304432], dtype=float32), array([ 4.47734165], dtype=float32), array([ 4.88290167]] 我只想得到 array = [4.12101269, 4

我有一大堆

array = [array([ 4.12101269], dtype=float32), array([ 4.44119978], dtype=float32), array([ 4.30688763], dtype=float32), array([ 4.80304432], dtype=float32), array([ 4.47734165], dtype=float32), array([ 4.88290167]]
我只想得到

array = [4.12101269, 4.44119978, 4.30688763, 4.80304432, 4.47734165, 4.88290167]
有办法吗

我试过了

array[]

您似乎有一个
numpy
数组列表。在这种情况下,您可以转换为
numpy
array,并调用
flatten

myarray = [np.array([ 4.12101269], dtype=float), np.array([ 4.44119978], dtype=float), np.array([ 4.30688763], dtype=float), np.array([ 4.80304432], dtype=float), np.array([ 4.47734165], dtype=float), np.array([ 4.88290167])]

np.array(myarray).flatten()

# array([ 4.12101269,  4.44119978,  4.30688763,  4.80304432,  4.47734165, 4.88290167])

这看起来像一个数组列表,我可以用它重新创建:

In [315]: alist = [array([ 4.12101269], dtype=float32), array([ 4.44119978], dty
     ...: pe=float32), array([ 4.30688763], dtype=float32), array([ 4.80304432],
     ...:  dtype=float32), array([ 4.47734165], dtype=float32), array([ 4.882901
     ...: 67])]
In [316]: alist
Out[316]: 
[array([4.1210127], dtype=float32),
 array([4.4412], dtype=float32),
 array([4.3068876], dtype=float32),
 array([4.8030443], dtype=float32),
 array([4.4773417], dtype=float32),
 array([4.88290167])]
concatenate
或其
hstack
变体很好地将这些数组连接到一个数组中:

In [317]: np.hstack(alist)
Out[317]: 
array([4.12101269, 4.44119978, 4.30688763, 4.80304432, 4.47734165,
       4.88290167])
np.array
也可以加入它们,但会添加一个维度:

In [318]: np.array(alist)
Out[318]: 
array([[4.12101269],
       [4.44119978],
       [4.30688763],
       [4.80304432],
       [4.47734165],
       [4.88290167]])
但有可能你有一个对象数组,我可以将其构造为:

In [319]: arr = np.empty(len(alist), object)
In [320]: arr[:] = alist
In [321]: arr
Out[321]: 
array([array([4.1210127], dtype=float32), array([4.4412], dtype=float32),
       array([4.3068876], dtype=float32),
       array([4.8030443], dtype=float32),
       array([4.4773417], dtype=float32), array([4.88290167])],
      dtype=object)
repr
str
显示不同。请注意下面缺少的逗号:

In [322]: print(arr)
[array([4.1210127], dtype=float32) array([4.4412], dtype=float32)
 array([4.3068876], dtype=float32) array([4.8030443], dtype=float32)
 array([4.4773417], dtype=float32) array([4.88290167])]
但是
hstack
仍然有效:

In [323]: np.hstack(arr)
Out[323]: 
array([4.12101269, 4.44119978, 4.30688763, 4.80304432, 4.47734165,
       4.88290167])

你是怎么得到这个东西的?听起来,您应该纠正产生此问题的任何代码,而不是试图在后处理中修复问题。