小编EB2*_*127的帖子

如何配置Atom来运行Python3脚本?

在我的终端,我输入$ which python3,输出

/opt/local/bin/python3
Run Code Online (Sandbox Code Playgroud)

我想配置Atom来运行Python3脚本.在我的Atom配置中,我有

runner:
python: "/opt/local/bin/python3"
Run Code Online (Sandbox Code Playgroud)

但是,如果我在一些名为的脚本中运行以下脚本filename.py,

import sys
print(sys.version)
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

2.7.11 (default, Feb 18 2016, 22:00:44) 
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)]
Run Code Online (Sandbox Code Playgroud)

如何设置PATH以使Python3.x脚本正确运行?我可以使用不同的包装吗?

python path python-3.x atom-editor

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

Numpy 数组大于 RAM:写入磁盘还是核外解决方案?

我有以下工作流程,将数据附加到空的 pandas Series 对象。(这个空数组也可以是 NumPy 数组,甚至是基本列表。)

in_memory_array = pd.Series([])

for df in list_of_pandas_dataframes:
    new = df.apply(lambda row: compute_something(row), axis=1)  ## new is a pandas.Series
    in_memory_array = in_memory_array.append(new)
Run Code Online (Sandbox Code Playgroud)

我的问题是生成的数组in_memory_array对于 RAM 来说太大了。我不需要将所有对象保留在内存中进行此计算。

我认为一旦数组对于 RAM 来说太大,我的选择就是以某种方式将对象腌制到磁盘,例如

# N = some size in bytes too large for RAM
if sys.getsizeof(in_memory_array) > N: 
    with open('mypickle.pickle', 'wb') as f:
        pickle.dump(in_memory_array, f)
Run Code Online (Sandbox Code Playgroud)

否则,有没有核外解决方案?最好的情况是创建一些上限,使得对象在 RAM 中的增长不能超过 X GB。

python memory arrays numpy bigdata

6
推荐指数
1
解决办法
2820
查看次数

密钥如何与 reCAPTCHA v3 Enterprise 配合使用?

我正在尝试将 reCAPTCHA 包含在我正在开发的 React 应用程序中,并使用 Next.js 作为服务器端功能。

我认为我从根本上对 reCAPTCHA Enterprise 感到困惑。

以前使用 reCAPTCHA 注册域的“免费”方式是为用户提供一个公共 reCAPTCHA 密钥和一个用于后端的私有 reCAPTCHA 密钥。这是通过使用 Google 的 reCAPTCHA v3 通过“管理员”在https://www.google.com/recaptcha/admin/create注册的。

鉴于我有 GCP 帐户,我会被重定向到 reCAPTCHA Enterprise API。这里只有一把钥匙可用。reCAPTCHA Enterprise 中是否没有可使用的密钥?

如果是这样,如何使用它?现在没有私钥了吗?

recaptcha google-cloud-platform recaptcha-v3 react-google-recaptcha recaptcha-enterprise

6
推荐指数
1
解决办法
4594
查看次数

如何从列表中生成字典列表(带列表值)?

通过迭代python列表,我想创建一个列表字典,其中每个字典的值也是一个列表.

结构将是:

[{key1: [val1, val2]}, {key2: [val3, val4]}, {key3: [val5, val6]}, ...]
Run Code Online (Sandbox Code Playgroud)

我从一个整数列表开始:

my_list = [3423, 77813, 12, 153, 1899]
Run Code Online (Sandbox Code Playgroud)

对于列表中的每个元素,这应该成为字典键.然后我将两个项附加到字典的值(这是一个列表).(假设这两个项目总是"狗"和"猫")

以下是最终结果:

[{3423:['dog', 'cat']}, {77813:['dog', 'cat']}, {12:['dog', 'cat']},
    {153:['dog', 'cat']}, {1899:['dog', 'cat']}]
Run Code Online (Sandbox Code Playgroud)

我尝试这样做有很多问题:

for i in my_list:
    d = {}   ## create a dictionary 'd'
    d[i] = [].append('dog')  ## or  `d[i] = ['dog'].append('cat')`
    my_list.append(d)   ## here is a bug
    my_list.remove(i) ## remove the item from the list
Run Code Online (Sandbox Code Playgroud)
  1. 我不喜欢我必须命名一个空字典,让它们各自命名相同的东西(这里d).后来,我想用钥匙访问这些词典 - 我不在乎他们的名字.

  2. 当它实际上应该是一个列表时,我不知道如何合理地将多个项附加到字典值.如果我想添加几个项目怎么办?

  3. 该错误是将字典附加到原始列表,然后删除该项目.当然,这可以通过一个新的列表来解决:

    new_list = []
    for i in …
    Run Code Online (Sandbox Code Playgroud)

python dictionary list data-structures

5
推荐指数
1
解决办法
449
查看次数

将带有列表的嵌套字典展开到pandas DataFrame中

我有一个嵌套字典,子字典使用列表:

nested_dict = {'string1': {69: [1231, 232], 67:[682, 12], 65: [1, 1]}, 
    `string2` :{28672: [82, 23], 22736:[82, 93, 1102, 102], 19423: [64, 23]}, ... }
Run Code Online (Sandbox Code Playgroud)

列表中至少有两个元素用于子词典,但可能会有更多.

我想将这个字典"展开"成一个pandas DataFrame,第一个字典键有一列(例如'string1','string2',..),一个列用于子目录键,一列用于第一个字典键列表中的项目,下一个项目的一列,依此类推.

这是输出应该是什么样子:

col1       col2    col3     col4    col5    col6
string1    69      1231     232
string1    67      682      12
string1    65      1        1
string2    28672   82       23
string2    22736   82       93      1102    102
string2    19423   64       23
Run Code Online (Sandbox Code Playgroud)

当然,我尝试使用pd.DataFrame.from_dict:

new_df = pd.DataFrame.from_dict({(i,j): nested_dict[i][j] 
                           for i in nested_dict.keys() 
                           for j in nested_dict[i].keys()
                           ... 
Run Code Online (Sandbox Code Playgroud)

现在我被卡住了.并且存在许多问题:

  1. 如何解析字符串(即nested_dict[i].values() …

python dictionary pandas

5
推荐指数
1
解决办法
1451
查看次数

如何正确删除Scikit-Learn的DPGMM的冗余组件?

我正在使用 scikit-learn 来实现狄利克雷过程高斯混合模型:

https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/mixture/dpgmm.py http://scikit-learn.org/stable/modules/ generated/sklearn.mixture.BayesianGaussianMixture.html

也就是说,sklearn.mixture.BayesianGaussianMixture()默认设置为weight_concentration_prior_type = 'dirichlet_process'。与 k 均值(用户先验设置聚类数量“k”)相反,DPGMM 是一种无限混合模型,使用狄利克雷过程作为聚类数量的先验分布。

我的 DPGMM 模型始终将准确的簇数量输出为n_components。正如这里所讨论的,处理这个问题的正确方法是“减少冗余组件” predict(X)

Scikit-Learn 的 DPGMM 拟合:组件数量?

但是,链接到的示例实际上并未删除冗余组件并显示数据中“正确”的簇数。相反,它只是绘制正确的簇数。

http://scikit-learn.org/stable/auto_examples/mixture/plot_gmm.html

用户如何真正删除多余的组件,并输出一个包含这些组件的数组?这是删除冗余集群的“官方”/唯一方法吗?

这是我的代码:

>>> import pandas as pd 
>>> import numpy as np 
>>> import random
>>> from sklearn import mixture  
>>> X = pd.read_csv(....)   # my matrix
>>> X.shape
(20000, 48) 
>>> dpgmm3 = mixture.BayesianGaussianMixture(n_components = 20, weight_concentration_prior_type='dirichlet_process', max_iter = 1000, verbose = 2) 
>>> dpgmm3.fit(X) # Fitting the DPGMM model …
Run Code Online (Sandbox Code Playgroud)

python statistics machine-learning python-3.x scikit-learn

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

使用pandas DataFrame行的组合填充"计数矩阵"

假设我在Python3.x中有以下pandas DataFrame

import pandas as pd

dict1 = {'name':['dog', 'dog', 'cat', 'cat', 'cat', 'bird', 'bird', 'bird', 'bird'], 'number':[42, 42, 42, 42, 42, 42, 42, 42, 42], 'count':[1, 2, 4, 5, 7, 1, 2, 5, 8]} 
df = pd.DataFrame(dict1)

print(df)
##    name  number  count
## 0   dog      42      1
## 1   dog      42      2
## 2   cat      42      4
## 3   cat      42      5
## 4   cat      42      7
## 5  bird      42      1
## 6  bird      42      2
## 7 …
Run Code Online (Sandbox Code Playgroud)

python count matrix dataframe pandas

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

如果子字符串替换了随机字符,如何找到子字符串?

假设我们在 Python 中有一个字符串:

original_string = "TwasTheNightBeforeChristmasWhenAllThroughTheHouse"
Run Code Online (Sandbox Code Playgroud)

我们有兴趣找到子字符串的起始坐标substring ="ChristmasWhen"。这在 Python 中非常简单,即

>>> substring ="ChristmasWhen"
>>> original_string.find(substring)
18
Run Code Online (Sandbox Code Playgroud)

这检查出来

>>> "TwasTheNightBeforeChristmasWhenAllThroughTheHouse"[18]
'C'
Run Code Online (Sandbox Code Playgroud)

如果我们试图寻找一个不存在的字符串,find()将返回 -1。

这是我的问题:

我有一个子字符串,它保证来自原始字符串。但是,此子字符串中的字符已被随机替换为另一个字符。

如果子字符串具有'-'替换某些字母的随机字符,我如何通过算法找到子字符串的开始坐标(或至少检查是否可能)?

这是一个具体的例子:

original_string = "TwasTheNightBeforeChristmasWhenAllThroughTheHouse"
substring = '-hri-t-asW-en'
Run Code Online (Sandbox Code Playgroud)

自然,如果我尝试original_string.find('-hri-t-asW-en'),但有可能找到hri从 19 开始,因此使用前缀-,子字符串original_string.find('-hri-t-asW-en')必须是 18。

python string algorithm substring

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

如何在 Golang 中为字符串添加单引号?

也许这是一个简单的问题,但我还没有想出如何做到这一点:

我在 Go 中有一个字符串切片,我想将其表示为逗号分隔的字符串。这是切片example

example := []string{"apple", "Bear", "kitty"}
Run Code Online (Sandbox Code Playgroud)

我想将其表示为带单引号的逗号分隔字符串,即

'apple', 'Bear', 'kitty'
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何在 Go 中有效地做到这一点。

例如,strings.Join()给出一个逗号分隔的字符串:

commaSep := strings.Join(example, ", ")
fmt.Println(commaSep)
// outputs: apple, Bear, kitty
Run Code Online (Sandbox Code Playgroud)

关闭,但不是我需要的。我也知道如何添加双引号strconv,即

new := []string{}
for _, v := range foobar{
    v = strconv.Quote(v)
    new = append(new, v)

}
commaSepNew := strings.Join(new, ", ")
fmt.Println(commaSepNew)
// outputs: "apple", "Bear", "kitty"
Run Code Online (Sandbox Code Playgroud)

再次,不是我想要的。

如何输出字符串'apple', 'Bear', 'kitty'

string quotes go strconv

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

如何修复有关限制 FOSS 使用的 CRAN 软件包的以下警告?

我正在创建一个 R 包,它依赖于以下包akima,该包发布在 CRAN 上:

https://cran.r-project.org/web/packages/akima/index.html

当我尝试将我的 R 包上传到 CRAN 时,有一条注释:

Package has a FOSS license but eventually depends on the following
package which restricts use:
  akima
Run Code Online (Sandbox Code Playgroud)

我很困惑如何解决这个问题,或者这个注释的实际含义。

鉴于这是 akima 的许可证(位于 CRAN 上),我可以做些什么来解决此注释吗?我自己的软件包目前依赖于 GPL-3 作为许可证,我认为这很好: https: //cran.r-project.org/web/licenses/

任何帮助在这里表示感谢。

r cran r-package

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

如何使用react-google-recaptcha-v3验证令牌并获取分数?

我正在使用库react-google-recaptcha-v3将 reCAPTCHA v3 集成到我的 React 应用程序中,该应用程序也使用 Next。

自述文件中有以下示例向用户介绍该useGoogleReCaptcha挂钩:

import {
  GoogleReCaptchaProvider,
  useGoogleReCaptcha
} from 'react-google-recaptcha-v3';

const YourReCaptchaComponent  = () => {
  const { executeRecaptcha } = useGoogleReCaptcha();
  const token = executeRecaptcha("login_page");

  return (...)
}

ReactDom.render(
  <GoogleReCaptchaProvider reCaptchaKey="[Your recaptcha key]">
    <YourReCaptchaComponent />
  </GoogleReCaptchaProvider>,
  document.getElementById('app')
);
Run Code Online (Sandbox Code Playgroud)

我很困惑我应该如何使用const token = executeRecaptcha("login_page"). 我目前不明白开发人员应该如何使用它token。是否没有与此令牌关联的“分数”,从而禁止潜在的机器人使用该页面?

如何验证此令牌并使用它?任何帮助表示赞赏。

reactjs next.js recaptcha-v3 react-google-recaptcha

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

如何将Python列表转换为具有"默认"键值的字典?

我有一个对象列表

list = ['abc', 'dog', 'cat', 'bird',.....]
Run Code Online (Sandbox Code Playgroud)

我目前正在将此列表作为文本文件输出.我想将其转换为字典,以便"键值"是从零开始的索引.

dict = {0: 'abc', 1: 'dog', 2: 'cat', 3: 'bird', ...}
Run Code Online (Sandbox Code Playgroud)

怎么做到这一点?

python json dictionary

-1
推荐指数
1
解决办法
105
查看次数