首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“numpy.ndarray”对象如何不使用“numpy.ndarray”对象?

“numpy.ndarray”对象如何不使用“numpy.ndarray”对象?
EN

Stack Overflow用户
提问于 2019-06-14 15:09:19
回答 3查看 13.5K关注 0票数 3

当您调用DataFrame.to_numpy()时,熊猫将找到NumPy d类型,它可以容纳DataFrame中的所有dtype。但是如何执行反向操作呢?

我有一个'numpy.ndarray‘对象'pred’。看起来是这样的:

[0.00599913 0.00506044 0.00508315 . 0.00540191 0.00542058 0.00542058]

我试着这样做:

代码语言:javascript
运行
复制
 pred = np.uint8(pred)
 print("Model predict:\n", pred.T)

但我明白:

[0 0 0.0 0]

为什么,在转换之后,我没有得到这样的东西:

0 0 0.0 0 0

如何将pred写到文件中?

代码语言:javascript
运行
复制
pred.to_csv('pred.csv', header=None, index=False)
pred = pd.read_csv('pred.csv', sep=',', header=None)

给出一个错误消息:

代码语言:javascript
运行
复制
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'

请帮我解决这个问题。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-06-14 15:45:46

predndarray。它没有to_csv方法。这是pandas DataFrame所拥有的东西。

但让我们看看第一件事。

复制数组显示,添加逗号,让我列出一个列表:

代码语言:javascript
运行
复制
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]]

然后用它做一个数组:

代码语言:javascript
运行
复制
In [3]: arr = np.array(alist) 
In [8]: print(arr)                                                              
[[0.00599913 0.00506044 0.00508315 0.00540191 0.00542058 0.00542058]]

或者ipython作为默认设置提供的ipython显示:

代码语言:javascript
运行
复制
In [4]: arr                                                                     
Out[4]: 
array([[0.00599913, 0.00506044, 0.00508315, 0.00540191, 0.00542058,
        0.00542058]])

由于双括号,这是一个2d数组。它的转座子将具有形状(6,1)。

代码语言:javascript
运行
复制
In [5]: arr.shape                                                               
Out[5]: (1, 6)

转换到uint8按预期工作(我更喜欢astype版本)。但

代码语言:javascript
运行
复制
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。

票数 0
EN

Stack Overflow用户

发布于 2021-03-04 09:59:51

您可以用一行代码来解决这个问题,将ndarray转换为熊猫df,然后转换为csv文件。

代码语言:javascript
运行
复制
pd.DataFrame(X_train_res).to_csv("x_train_smote_oversample.csv")
票数 12
EN

Stack Overflow用户

发布于 2021-01-08 12:25:11

代码语言:javascript
运行
复制
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')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56600918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档