我有一个以下形式的numpy数组 arr :
array([[ 0.00021284, -0.04443965, 0.03926146, ..., 0.04830161,
-0.11913304, 0.03370821],
[ 0.01778569, -0.05192029, -0.00792321, ..., -0.01799901,
-0.09819183, 0.06020728],
[-0.00748426, -0.02401578, 0.01762747, ..., 0.09334017,
-0.11837556, 0.00603597],
[-0.03505319, -0.01932572, -0.03248611, ..., 0.00356432,
-0.082398 , 0.03887841],
[-0.05111802, -0.0309066 , 0.03542011, ..., -0.01343899,
-0.10434885, -0.0315006 ]], dtype=float32)
假设形状为(5,512)
我还有一个如下格式的熊猫数据框 df :
Message
0 How are you?
1 What is your name?
2 What do you do?
3 What is your address?
4 Let's hang out?
我想通过创建新列将 arr 中的每一行作为 df 中的元素附加:
Message Vector
0 How are you? [ 0.00021284, -0.04443965, 0.03926146, ..., 0.04830161, -0.11913304, 0.03370821]
1 What is your name? [ 0.01778569, -0.05192029, -0.00792321, ..., -0.01799901, -0.09819183, 0.06020728]
2 What do you do? [-0.00748426, -0.02401578, 0.01762747, ..., 0.09334017, -0.11837556, 0.00603597]
3 What is your address? [-0.03505319, -0.01932572, -0.03248611, ..., 0.00356432, -0.082398, 0.03887841]
4 Let's hang out? [-0.05111802, -0.0309066 , 0.03542011, ..., -0.01343899, -0.10434885, -0.0315006 ]
实现此目标的有效方法是什么?
答案 0 :(得分:1)
为该问题创建一个数组,并将其转换为列表。
a = np.array([[ 0.00021284, -0.04443965, 0.03926146, 0.04830161,
-0.11913304, 0.03370821],
[ 0.01778569, -0.05192029, -0.00792321, -0.01799901,
-0.09819183, 0.06020728],
[-0.00748426, -0.02401578, 0.01762747, 0.09334017,
-0.11837556, 0.00603597],
[-0.03505319, -0.01932572, -0.03248611, 0.00356432,
-0.082398 , 0.03887841],
[-0.05111802, -0.0309066 , 0.03542011, -0.01343899,
-0.10434885, -0.0315006 ]]).tolist()
结果:
print(a)
[[0.00021284, -0.04443965, 0.03926146, 0.04830161, -0.11913304, 0.03370821], [0.01778569, -0.05192029, -0.00792321, -0.01799901, -0.09819183, 0.06020728], [-0.00748426, -0.02401578, 0.01762747, 0.09334017, -0.11837556, 0.00603597], [-0.03505319, -0.01932572, -0.03248611, 0.00356432, -0.082398, 0.03887841], [-0.05111802, -0.0309066, 0.03542011, -0.01343899, -0.10434885, -0.0315006]]
然后将列表添加到数据框。
df = pd.DataFrame({"Message": [
"How are you?",
"What is your name?",
"What do you do?",
"What is your address?",
"Let's hang out?"]})
df['Array'] = a
print(df)
针对:
Message Array
0 How are you? [0.00021284, -0.04443965, 0.03926146, 0.048301...
1 What is your name? [0.01778569, -0.05192029, -0.00792321, -0.0179...
2 What do you do? [-0.00748426, -0.02401578, 0.01762747, 0.09334...
3 What is your address? [-0.03505319, -0.01932572, -0.03248611, 0.0035...
4 Let's hang out? [-0.05111802, -0.0309066, 0.03542011, -0.01343...
要在开始时创建所有内容,可以使用字典:
df = pd.DataFrame({"Message": [
"How are you?",
"What is your name?",
"What do you do?",
"What is your address?",
"Let's hang out?"], "Array": a})