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作为定义这个可选参数的有效方法?
假设我有两个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,mean和max,在所有切片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)