提取熊猫列中的值列表



我有一个pandas对象,它有一个名为'text'的列用于训练输入,还有一个称为'labels'的列用于培训输出。

# 2d array with float32 values in the shape (300)
print(df['text'])
#=> 0    [[4.8312, 1.5674, -1.1444, -2.9088, -3.2264, 3...
#=> 0    [[2.5453, 2.2064, -0.913, 1.0133, -3.8835, 8.3...
#=> Name: text, dtype: object
# 2d array with either 0 or 1 as values in the shape (1)
print(df['labels'])
#=> 0                  [[0.0], [0.0], [0.0], [0.0], [0.0]]
#=> 0    [[0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0....
#=> Name: labels, dtype: object

为了将它们传递给keras.fit(),我需要将每列转换为一个nparray。

我希望'text'的nparray看起来像:

#=> [
#=>  [[4.8312, 1.5674, -1.1444, -2.9088, -3.2264, 3...
#=>  [[2.5453, 2.2064, -0.913, 1.0133, -3.8835, 8.3...
#=> ]

'labels'的nparray看起来像:

#=> [
#=>  [[0.], [0.], [0.], [0.], [0.], ...
#=>  [[0.], [0.], [0.], [0.], [0.], ...
#=> ]

为什么这不起作用?额外的array()对象来自哪里?我如何以有效的方式获取值?

print(a['labels'].values)
#=> [array([[0.],
#=>         [0.],
#=>         [0.],
#=>         [0.],
#=>         [0.]], dtype=float32) array([[0.],
#=>                                      [0.],
#=>                                      [0.],
#=>                                      [0.],
#=>                                      [0.],
#=>                                      [0.],
#=>                                      [0.],
#=>                                      [0.],
#=>                                      [0.],
#=>                                      [0.],
#=>                                      [0.],
#=>                                      [0.],
#=>                                      [0.]], dtype=float32)]

array()表示第一个参数中的数组实际上是numpy数组。这实际上并不意味着创建了一个额外的数组。

最新更新