Python 如何';numpy.ndarray和#x27;对象不';numpy.ndarray和#x27;对象
调用DataFrame.to_numpy()时,pandas将找到可以保存数据帧中所有数据类型的numpy数据类型。但是如何执行反向操作呢 我有一个'numpy.ndarray'对象'pred'。看起来是这样的:Python 如何';numpy.ndarray和#x27;对象不';numpy.ndarray和#x27;对象,python,pandas,numpy,export-to-csv,numpy-ndarray,Python,Pandas,Numpy,Export To Csv,Numpy Ndarray,调用DataFrame.to_numpy()时,pandas将找到可以保存数据帧中所有数据类型的numpy数据类型。但是如何执行反向操作呢 我有一个'numpy.ndarray'对象'pred'。看起来是这样的: pred = np.uint8(pred) print("Model predict:\n", pred.T) [0.00599913 0.00506044 0.00508315…0.00540191 0.00542058 0.00542058]] 我试着这样做: pred =
pred = np.uint8(pred)
print("Model predict:\n", pred.T)
[0.00599913 0.00506044 0.00508315…0.00540191 0.00542058 0.00542058]]
我试着这样做:
pred = np.uint8(pred)
print("Model predict:\n", pred.T)
但我得到:
[[0 0…0 0]]
为什么,在转换之后,我没有得到这样的东西:
pred = np.uint8(pred)
print("Model predict:\n", pred.T)
0 0 0 0 0 0。。。0 0 0 0 0
如何将pred写入文件
pred.to_csv('pred.csv', header=None, index=False)
pred = pd.read_csv('pred.csv', sep=',', header=None)
给出一条错误消息:
AttributeError Traceback (most recent call last)
<ipython-input-68-b223b39b5db1> in <module>()
----> 1 pred.to_csv('pred.csv', header=None, index=False)
2 pred = pd.read_csv('pred.csv', sep=',', header=None)
AttributeError: 'numpy.ndarray' object has no attribute 'to_csv'
AttributeError回溯(最近一次调用)
在()
---->1 pred.to_csv('pred.csv',header=None,index=False)
2 pred=pd.read_csv('pred.csv',sep=',',header=None)
AttributeError:'numpy.ndarray'对象没有属性'to_csv'
请帮我解决这个问题。
pred
是一个ndarray
。它没有to_csv
方法。这是一个pandas
DataFrame
所具有的特性
但让我们看看第一件事
复制阵列显示,添加逗号,让我列出:
In [1]: alist = [[0.00599913, 0.00506044, 0.00508315, 0.00540191, 0.00542058, 0.
...: 00542058]]
In [2]: alist
Out[2]: [[0.00599913, 0.00506044, 0.00508315, 0.00540191, 0.00542058, 0.00542058]]
并从中生成一个数组:
In [3]: arr = np.array(alist)
In [8]: print(arr)
[[0.00599913 0.00506044 0.00508315 0.00540191 0.00542058 0.00542058]]
或ipython
默认显示的repr
显示:
In [4]: arr
Out[4]:
array([[0.00599913, 0.00506044, 0.00508315, 0.00540191, 0.00542058,
0.00542058]])
由于使用了双括号,这是一个二维数组。其转座将具有形状(6,1)
转换到uint8
的效果与预期一样(我更喜欢astype
版本)。但是
转换后的形状与前面的(1,6)相同
这种转换几乎毫无意义。这些值都很小,介于1和0之间。可以预见,转换为小的(1字节)无符号整数会产生所有0。将numpy作为np导入
作为pd进口熊猫
x=[1,2,3,4,5,6,7]
x=np.数组(x)
y=pd.系列(x)
打印(y)
y、 至_csv(“a.csv”)
您可以通过一行代码来解决此问题,将ndarray转换为pandas df,然后再转换为csv文件
pd.DataFrame(X_train_res).to_csv("x_train_smote_oversample.csv")
请在
np.uint8
之前尝试pred=list(pred.ravel())
,以获得csv
是一种数据帧方法。您的pred
是一个ndarray
,但最重要的是删除双括号并制作uint8数组。有接近1和0的值,目标是将数组简化为形式0 1 0 1 0…双括号只是底层数组结构的表面显示-其尺寸和形状<代码>重塑或拉威尔
可以将2d更改为1d,但这并不能消除显示器中的[]
。要将数组写入csv文件,您需要一个2d数组来表示行和列。使用uint8
(或任何int-dtype)不会对浮点进行取整,而是截断它们。