我想找到numpy.where评估为true的地方数量.以下解决方案有效,但非常难看.
b = np.where(a < 5)
num = (b[0]).shape[0]
Run Code Online (Sandbox Code Playgroud)
我来自一种语言,我需要先检查num> 0,然后再对结果数组执行某些操作.有没有更优雅的方式获得num,或更多的Pythonic解决方案而不是找到num?
(对于那些熟悉IDL的人,我试图复制它的简单b = where(a lt 5, num).)
有了一些numpy数组a,我想做的是
indices = np.where((a < 4) or (a > 12))
Run Code Online (Sandbox Code Playgroud)
这是无效的.它只返回"具有多个元素的数组的真值是不明确的.使用a.any()或a.all()".但这种表达是不明确的,any并且all不这样做我想做的事情.(any而all不能采取复合表达式无论是.但是if可以.困惑...)
我想拥有
from __future__ import (absolute_import, division, print_function, unicode_literals)
Run Code Online (Sandbox Code Playgroud)
使用PYTHONSTARTUP文件在每个交互式会话中加载.这适用于基本的python(2.7.5,与Anaconda一起安装),但不适用于ipython(1.0.0,Anaconda).其他import语句与ipython一起使用,但__future__只是忽略了它们(尽管如果我在命令行输入它们它们就可以工作).这是一个ipython错误,还是有什么我想念的?