我有一个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数组。这实际上并不意味着创建了一个额外的数组。