下午好, 我有一个尺寸为(963,1)的数据框,如何将这样的内容更改为numpy格式:
array ([244.1462534,212.68483386, 212.04058487, 236.39615555]
当我使用np.array(a)时,在我看来,每个元素都在不同的行中
[244.1462534,
244.1462534,
244.1462534,
244.1462534]
因为有很多这样的东西很难看到
答案 0 :(得分:1)
制作1列框架:
In [590]: df = pd.DataFrame(np.arange(5), columns=['x'])
In [591]: df
Out[591]:
x
0 0
1 1
2 2
3 3
4 4
从此开始的数组的形状为(5,1):
In [592]: df.values
Out[592]:
array([[0],
[1],
[2],
[3],
[4]])
一列是系列,即1d:
In [594]: df['x']
Out[594]:
0 0
1 1
2 2
3 3
4 4
Name: x, dtype: int64
In [595]: df['x'].values
Out[595]: array([0, 1, 2, 3, 4])
但是,如果您拥有(5,1)形状数组,则有许多方法可以对其进行重塑:
In [596]: df.values.ravel()
Out[596]: array([0, 1, 2, 3, 4])
ravel
,flatten
,reshape
,squeeze
,甚至索引。所有这些都可以在基本的numpy
文档中找到。
答案 1 :(得分:0)
使用values
将数据帧转换为Numpy数组。检查Docs.
df.values
如果需要扁平化的np数组,可以重塑形状
df = pd.DataFrame(np.random.randn(10))
print (df.shape)
print (df.values.reshape(-1))
输出:
(10, 1)
[-1.43902815 0.72724325 -0.36741276 -1.96696158 0.5852711 -2.03214297
0.11657485 -1.77276773 0.33315229 -1.37454383]