Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何';numpy.ndarray和#x27;对象不';numpy.ndarray和#x27;对象_Python_Pandas_Numpy_Export To Csv_Numpy Ndarray - Fatal编程技术网

Python 如何';numpy.ndarray和#x27;对象不';numpy.ndarray和#x27;对象

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 =

调用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 = 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)不会对浮点进行取整,而是截断它们。