当您调用DataFrame.to_numpy()时,熊猫将找到NumPy d类型,它可以容纳DataFrame中的所有dtype。但是如何执行反向操作呢?
我有一个'numpy.ndarray‘对象'pred’。看起来是这样的:
[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 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'请帮我解决这个问题。
发布于 2019-06-14 15:45:46
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作为默认设置提供的ipython显示:
In [4]: arr
Out[4]:
array([[0.00599913, 0.00506044, 0.00508315, 0.00540191, 0.00542058,
0.00542058]])由于双括号,这是一个2d数组。它的转座子将具有形状(6,1)。
In [5]: arr.shape
Out[5]: (1, 6)转换到uint8按预期工作(我更喜欢astype版本)。但
In [6]: np.uint8(arr)
Out[6]: array([[0, 0, 0, 0, 0, 0]], dtype=uint8)
In [7]: arr.astype('uint8')
Out[7]: array([[0, 0, 0, 0, 0, 0]], dtype=uint8)转换后的形状与以前的(1,6)相同。
这种转换几乎毫无意义。这些值都很小,介于1到0之间。转换为小(1字节)无符号整数可预测地产生所有的0。
发布于 2021-03-04 09:59:51
您可以用一行代码来解决这个问题,将ndarray转换为熊猫df,然后转换为csv文件。
pd.DataFrame(X_train_res).to_csv("x_train_smote_oversample.csv")发布于 2021-01-08 12:25:11
import numpy as np
import pandas as pd
x = [1,2,3,4,5,6,7]
x = np.array(x)
y = pd.Series(x)
print(y)
y.to_csv('a.csv')https://stackoverflow.com/questions/56600918
复制相似问题