Numpy.array从多个括号重新形成2个括号

问题描述 投票:-1回答:3

我在一维numpy.array中需要相同的数据,但由于某种原因,我没有以正确的格式获得它们。我最大的问题是我真的不知道该找什么。

我的数据形式如下:

yTrue

    [[27.23]
     [26.38]
     [26.19]
     [26.21]
     [26.24]
     [27.47]
     [37.85]
     [53.35]]

但为了计算它我需要将我的数据存储为一维数组,如果我是对的,那么它们必须如下所示:

Ypred

    [26.63003973 26.34320268 26.05945521 25.77876403 25.50109623 25.22641923]

type()告诉我两个变量都是相同的class:<class 'numpy.ndarray'>

python numpy
3个回答
0
投票

我想你正在寻找阵列的.flat属性。如果这不是你想要的,请看看this question的其他想法。


0
投票

你有一个(n,1)形状数组,如:

In [39]: arr = np.random.rand(5,1)*100                                          
In [40]: arr                                                                    
Out[40]: 
array([[39.12922352],
       [66.79745338],
       [51.97361542],
       [97.60386022],
       [85.89486218]])

有很多方法可以将它重塑为(n,),1d:

In [41]: arr.ravel()                                                            
Out[41]: array([39.12922352, 66.79745338, 51.97361542, 97.60386022, 85.89486218])
In [42]: arr.reshape(5)                                                         
Out[42]: array([39.12922352, 66.79745338, 51.97361542, 97.60386022, 85.89486218])
In [43]: arr.reshape(-1)                                                        
Out[43]: array([39.12922352, 66.79745338, 51.97361542, 97.60386022, 85.89486218])
In [44]: arr.flatten()                                                          
Out[44]: array([39.12922352, 66.79745338, 51.97361542, 97.60386022, 85.89486218])
In [45]: arr[:,0]                                                               
Out[45]: array([39.12922352, 66.79745338, 51.97361542, 97.60386022, 85.89486218])

随你挑选,阅读他们的文档,进行实验。

你展示的是str表示:

In [46]: print(arr)                                                             
[[39.12922352]
 [66.79745338]
 [51.97361542]
 [97.60386022]
 [85.89486218]]

0
投票

谢谢您的帮助。它成功了。我真正的问题是我不明白那一刻阵列的差异。谢谢

© www.soinside.com 2019 - 2024. All rights reserved.