小编Max*_*xim的帖子

使 argparse 将破折号和下划线视为相同

argparse用下划线替换可选参数中的破折号以确定其目的地:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--use-unicorns', action='store_true')
args = parser.parse_args(['--use-unicorns'])
print(args)  # returns: Namespace(use_unicorns=True)
Run Code Online (Sandbox Code Playgroud)

然而,用户必须记住该选项是--use-unicorns--use_unicorns;使用错误的变体会引发错误。

这可能会导致一些挫败感,因为变量args.use_unicorns没有明确定义了哪个变体。

我怎样才能argparse接受--use-unicorns--use_unicorns作为定义这个可选参数的有效方法?

python argparse

12
推荐指数
2
解决办法
6070
查看次数

连续非连续切片的Numpy减少

假设我有两个numpy数组,A形状(d, f)I形状(d,)包含索引0..n,例如

I = np.array([0, 0, 1, 0, 2, 1])
A = np.arange(12).reshape(6, 2)
Run Code Online (Sandbox Code Playgroud)

我要寻找一个快速的方式,使削减,特别是sum,meanmax,在所有切片A[I == i, :]; 一个慢版本

results = np.zeros((I.max() + 1, A.shape[1]))
for i in np.unique(I):
    results[i, :] = np.mean(A[I == i, :], axis=0)
Run Code Online (Sandbox Code Playgroud)

在这种情况下给出

results = [[ 2.66666667,  3.66666667],
           [ 7.        ,  8.        ],
           [ 8.        ,  9.        ]])
Run Code Online (Sandbox Code Playgroud)

编辑:我根据Divakar的回答和之前的海报(已删除)pandas回答做了一些时间安排.

时间码:

from __future__ import division, …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy max vectorization

7
推荐指数
1
解决办法
303
查看次数

标签 统计

python ×2

argparse ×1

arrays ×1

max ×1

numpy ×1

vectorization ×1