3 维 numpy 数组到 pandas 数据帧
3 dimensional numpy array to pandas dataframe
我有一个 3 维 numpy 数组
([[[0.30706802]],
[[0.19451728]],
[[0.19380492]],
[[0.23329106]],
[[0.23849282]],
[[0.27154338]],
[[0.2616704 ]], ... ])
形状 (844,1,1) 由 RNN model.predict()
y_prob = loaded_model.predict(X)
,我的问题是如何将其转换为 pandas 数据帧。
我用过 Keras
我的objective是这样的:
0 0.30706802
7 0.19451728
21 0.19380492
35 0.23329106
42 ...
...
815 ...
822 ...
829 ...
836 ...
843 ...
Name: feature, Length: 78, dtype: float32
给你!
import pandas as pd
y = ([[[[11]],[[13]],[[14]],[[15]]]])
a = []
for i in y[0]:
a.append(i[0])
df = pd.DataFrame(a)
print(df)
输出:
0
0 11
1 13
2 14
3 15
您可以随意为 axis=0 和 axis=1 设置自定义索引值。
你可以试试:
s = pd.Series(your_array.flatten(), name='feature')
https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.flatten.html
然后您可以使用 s.to_frame()
将系列转换为数据框
想法是首先将嵌套列表展平为列表,然后使用 pandas 数据帧
的 from_records
方法在 df 中转换它
import numpy as np
import pandas as pd
data = np.array([[[0.30706802]],[[0.19451728]],[[0.19380492]],[[0.23329106]],[[0.23849282]],[[0.27154338]],[[0.2616704 ]]])
import itertools
data = list(itertools.chain(*data))
df = pd.DataFrame.from_records(data)
没有 itertools
data = [i for j in data for i in j]
df = pd.DataFrame.from_records(data)
或者你可以使用其中一个答案中提到的flatten()
方法,但你可以直接这样使用
pd.DataFrame(data.flatten(),columns = ['col1'])
我有一个 3 维 numpy 数组
([[[0.30706802]],
[[0.19451728]],
[[0.19380492]],
[[0.23329106]],
[[0.23849282]],
[[0.27154338]],
[[0.2616704 ]], ... ])
形状 (844,1,1) 由 RNN model.predict()
y_prob = loaded_model.predict(X)
,我的问题是如何将其转换为 pandas 数据帧。 我用过 Keras
我的objective是这样的:
0 0.30706802
7 0.19451728
21 0.19380492
35 0.23329106
42 ...
...
815 ...
822 ...
829 ...
836 ...
843 ...
Name: feature, Length: 78, dtype: float32
给你!
import pandas as pd
y = ([[[[11]],[[13]],[[14]],[[15]]]])
a = []
for i in y[0]:
a.append(i[0])
df = pd.DataFrame(a)
print(df)
输出:
0
0 11
1 13
2 14
3 15
您可以随意为 axis=0 和 axis=1 设置自定义索引值。
你可以试试:
s = pd.Series(your_array.flatten(), name='feature')
https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.flatten.html
然后您可以使用 s.to_frame()
想法是首先将嵌套列表展平为列表,然后使用 pandas 数据帧
的from_records
方法在 df 中转换它
import numpy as np
import pandas as pd
data = np.array([[[0.30706802]],[[0.19451728]],[[0.19380492]],[[0.23329106]],[[0.23849282]],[[0.27154338]],[[0.2616704 ]]])
import itertools
data = list(itertools.chain(*data))
df = pd.DataFrame.from_records(data)
没有 itertools
data = [i for j in data for i in j]
df = pd.DataFrame.from_records(data)
或者你可以使用其中一个答案中提到的flatten()
方法,但你可以直接这样使用
pd.DataFrame(data.flatten(),columns = ['col1'])