小编Ach*_*age的帖子

sklearn 导入错误:无法导入名称 plot_roc_curve

我正在尝试按照 sklearn 文档中提供的示例绘制具有交叉验证的接收器操作特征 (ROC) 曲线。但是,以下导入ImportErrorpython2和中都给出了, python3

from sklearn.metrics import plot_roc_curve
Run Code Online (Sandbox Code Playgroud)

错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name plot_roc_curve
Run Code Online (Sandbox Code Playgroud)

python-2.7 sklearn版本: 0.20.2.

python-3.6 sklearn版本: 0.21.3.

我发现以下导入工作正常,但与plot_roc_curve.

from sklearn.metrics import roc_curve
Run Code Online (Sandbox Code Playgroud)

plot_roc_curve弃用?有人可以尝试代码并让我知道 sklearn 版本是否有效吗?

python machine-learning roc scikit-learn

5
推荐指数
3
解决办法
7023
查看次数

使用 numpy 2D 数组包含一维列表的单列数据框

我想使用 2D numpy 数组创建一个新的单列 pandas 数据框。显然,每一行应该包含一维列表。以下是一个简化的可重现示例。

import pandas as pd
import numpy as np

arr = np.ones((4,3)) # could be any 2D array
Run Code Online (Sandbox Code Playgroud)

我想要的是,

       lists
0  [1, 1, 1]
1  [1, 1, 1]
2  [1, 1, 1]
3  [1, 1, 1]
Run Code Online (Sandbox Code Playgroud)

现在,df = pd.DataFrame(arr, columns=['lists'])给出错误,

ValueError: Shape of passed values is (4, 3), indices imply (4, 1)
Run Code Online (Sandbox Code Playgroud)

df = pd.DataFrame(list(arr), columns=['lists'])给出错误,

ValueError: 1 columns passed, passed data had 3 columns
Run Code Online (Sandbox Code Playgroud)

最后,df = pd.DataFrame(arr.flatten(), columns=['lists'])给出一个错误的数据框,所有单元格都有一个标量 …

python numpy dataframe pandas

5
推荐指数
2
解决办法
4514
查看次数

如何在不打开的情况下将巨大的单行 json 文件转换为多行文件?

我有一个大的(大约 200Mb)单行 json 文件,我想将其转换为更易读的多行​​ json(或 txt)文件。

我尝试使用文本编辑器(如 sublime text)打开文件,但打开需要很长时间。所以,我想在不打开文件的情况下进行转换。

因此,我无法使用SO 问题中建议的接口。

我通过执行以下操作尝试pretty-print按照答案中的建议使用 json 文件。

cat myjsonfile.json | python -m json.tool > pretty.json
Run Code Online (Sandbox Code Playgroud)

但终端打印以下消息,我得到一个空pretty.json文件。

Extra data: line 1 column 34255 - line 1 column 173769197 (char 34254 - 173769196)
Run Code Online (Sandbox Code Playgroud)

我正在考虑安装visual basic,只是为了转换文件。但是有没有更好更有效的方法来进行转换?

bash ubuntu json

4
推荐指数
1
解决办法
4143
查看次数

然后在给定范围内替换numpy数组元素

假设我有以下 numpy 数组。

arr = np.array( [ 1.0, 1.1, 1.44, 1.8, 1.0, 1.67, 1.23, 1.0] )
Run Code Online (Sandbox Code Playgroud)

我可以用 0.0 替换所有等于 1.0 的元素,只需使用以下行。

arr[arr==1.0] = 0.0
Run Code Online (Sandbox Code Playgroud)

我怎么能在不运行 for 循环的情况下用 1.0 替换 1.0 - 1.5 之间的所有元素。

基本上我要问的是如何执行以下操作

arr[arr>1.0 and arr<1.5] = 1.0
Run Code Online (Sandbox Code Playgroud)

谢谢

python arrays numpy

3
推荐指数
1
解决办法
2980
查看次数

根据 2D 索引替换 2D numpy 数组元素

这个问题可能以前在某个地方被问过,但经过一番搜索后我找不到任何问题,因此在此发布。

假设我有一个数组A和一个索引数组idx。暂时让两个数组都是二维的。

import numpy as np

A = np.array([[3,3,4],
              [4,5,4],
              [3,4,5]])

idx = np.array([[1,1],
                [2,1],
                [1,0],
                [0,0]])
Run Code Online (Sandbox Code Playgroud)

现在我想根据toA中的索引替换相应的元素。基本上,我想做,但行不通。idx0A[idx]=0

如何在不运行循环的情况下有效地完成此操作?

优选地,所提出的解决方案应该可扩展到更高维度(3D及以上)的阵列。

python arrays indexing numpy

2
推荐指数
1
解决办法
1092
查看次数