如何将包含字符串对象的熊猫数据框列转换为 numpy 数组?
how to convert a panda dataframe column containing string object to a numpy array?
请问我正在做一个项目,我必须做一些数据预处理
我有一个看起来像这样的数据框(这只是一个简化的例子
index | pixels
0 | 10 20 30 40
1 | 11 12 13 14
我想将它转换为形状为 (2,2,2,1) 的 np 数组
像素列的类型是对象
有没有没有循环的解决方案,因为我有一个带有大图像的 28k 行数据框?
我试过循环,但在我的机器上执行需要很长时间
使用str.split
+ astype
+ to_numpy
+ reshape
:
a = (
df['pixels'].str.split(' ', expand=True)
.astype(int).to_numpy()
.reshape((2, 2, 2, 1))
)
a
:
[[[[10]
[20]]
[[30]
[40]]]
[[[11]
[12]]
[[13]
[14]]]]
完整的工作示例:
import pandas as pd
df = pd.DataFrame({'pixels': ['10 20 30 40', '11 12 13 14']})
a = (
df['pixels'].str.split(' ', expand=True)
.astype(int).to_numpy()
.reshape((2, 2, 2, 1))
)
print(a)
请问我正在做一个项目,我必须做一些数据预处理 我有一个看起来像这样的数据框(这只是一个简化的例子
index | pixels
0 | 10 20 30 40
1 | 11 12 13 14
我想将它转换为形状为 (2,2,2,1) 的 np 数组 像素列的类型是对象 有没有没有循环的解决方案,因为我有一个带有大图像的 28k 行数据框? 我试过循环,但在我的机器上执行需要很长时间
使用str.split
+ astype
+ to_numpy
+ reshape
:
a = (
df['pixels'].str.split(' ', expand=True)
.astype(int).to_numpy()
.reshape((2, 2, 2, 1))
)
a
:
[[[[10]
[20]]
[[30]
[40]]]
[[[11]
[12]]
[[13]
[14]]]]
完整的工作示例:
import pandas as pd
df = pd.DataFrame({'pixels': ['10 20 30 40', '11 12 13 14']})
a = (
df['pixels'].str.split(' ', expand=True)
.astype(int).to_numpy()
.reshape((2, 2, 2, 1))
)
print(a)