Python 值错误 : cannot copy sequence to array

标签 python python-3.x pandas numpy

我有一个 .csv 数据集,其中三列的格式如下

  t           X      Y
 0.040662  1.041667  1
 0.139757  1.760417  2
 0.144357  1.190104  1
 0.145341  1.047526  1
 0.145401  1.011882  1
 0.148465  1.002970  1

而不是手动将其写为

x_final = np.array([1.041667, 1.760417, 1.190104, 1.047526, 1.011882, 1.002970])
v_observations = np.array([1, 2, 1, 1, 1, 1])

我想通过将 pandas 数据帧复制到数组来自动执行它,这是我的代码

import numpy as np
from numpy.linalg import inv
import pandas as pd

df = pd.read_csv('testdata.csv')
print(df)

df.dropna(inplace=True)

X = df.drop('Y', axis=1)
y = df['Y']

time = df.drop('t', axis=1)
print(X)
d1= np.array([X])
d2 = np.array([y])

x_final = np.array([d1])
y_final = np.array([d2])
z = np.c_[x_final, y_final]

但是,当我尝试运行代码时遇到此错误。

ValueError: cannot copy sequence with size 6 to array axis with dimension 2

如何修复此错误?

最佳答案

tl;dr:使用.values

你的问题是,当你创建 numpy 数组时,你正在向它传递一个列表,而我认为你正在尝试向它传递一个数据帧:

# This doesn't work
np.array([X])
# This does
np.array(X)

所以你可以这样做:

d1= np.array(X)
d2 = np.array(y)

或者更好:

d1 = X.values
d2 = y.values

获取:

>>> d1
array([[0.040662, 1.041667],
       [0.139757, 1.760417],
       [0.144357, 1.190104],
       [0.145341, 1.047526],
       [0.145401, 1.011882],
       [0.148465, 1.00297 ]])
>>> d2
array([1, 2, 1, 1, 1, 1])

但最终,你的最终结果将与简单地说完全相同:

z = df.dropna().values
>>> z
array([[0.040662, 1.041667, 1.      ],
       [0.139757, 1.760417, 2.      ],
       [0.144357, 1.190104, 1.      ],
       [0.145341, 1.047526, 1.      ],
       [0.145401, 1.011882, 1.      ],
       [0.148465, 1.00297 , 1.      ]])

请参阅docs对于 .values 方法,它只是为您提供数据帧的 numpy 表示

关于Python 值错误 : cannot copy sequence to array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53858840/

相关文章:

python - 在 python 中使用logging.config.dictConfig配置日志记录时出错

python - 在python中获取Base64图像尺寸

python - 如何连接 "Jagged"张量

python - 如何使用一两行检查 Python 列表仅包含 True,然后仅包含 False?

python - 根据最大值和最小值填写缺失的日期 pandas

Python Mechanize文件上传不断上传1kb文件

python - 将字符串位置映射到正则表达式输出中的行号

python - 如何在 Python 的某些条件下根据其他列表中的索引列表从一个列表中查找字符串?

python - Pandas - 创建一个包含前一列聚合的新列

python - ValueError : setting an array element with a sequence. 决策树