- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个定义
def myfunc(a, b):
if a < (b*10):
result = a*2
else:
result = a*(-1)
return result
现在当我使用 for 循环一个一个地输入我的 a
和 b
值时,这显然是完美的,但是它需要永远(我已经简化了定义 a一点点),我从经验中知道,将值作为数组传递会加快速度。
那么我该如何修改这段代码来接受数组。我使用了 any()
和 all()
命令,但我一定是用错了它们,因为我的函数只吐出一个值而不是一组值。
我想要的输出示例是:
>>>a = np.array([1,5,50,500])
>>>b = 1
>>>print myfunc(a, b)
array([-1, -5, 100, 1000])
最佳答案
你可以使用 np.where :
def myfunc(a, b):
return np.where(a < b*10, a*2, -a)
例如,
In [48]: a = np.array([1, 5, 50, 500])
In [49]: b = 1
In [50]: myfunc(a, b)
Out[50]: array([ 2, 10, -50, -500])
请注意输出与您想要的输出不同,但与您发布的代码一致。您当然可以通过反转不等式来获得所需的输出:
def myfunc(a, b):
return np.where(a > b*10, a*2, -a)
然后
In [52]: myfunc(a, b)
Out[52]: array([ -1, -5, 100, 1000])
关于python - Elementwise if elif函数在python中使用数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13290557/
我有一个定义 def myfunc(a, b): if a >>a = np.array([1,5,50,500]) >>>b = 1 >>>print myfunc(a, b) array(
我正在尝试为两个数组构建一个相等性检查器,我可以使用 PyCUDA 在我的 GPU 上运行它。 按照 PyCUDA 上给出的示例 GPU Arrays documentation page ,我试图编
我曾经使用 min([a, b], key=lambda x:abs(x-x0)) 来查找 a 和 中的哪一个b 最接近 x0。 a = 1 b = 2 x0 = 1.49 print(min([a,
我正在尝试执行元素渐变 例如, output-f(x): 5 x 1 向量, 相对于input-X: 5 x 1 向量 我可以这样做, import theano import theano.te
我在将模型的预测与训练集的标签进行比较时遇到了问题。我使用的数组具有以下形状: Training set (200000, 28, 28) (200000,) Validation set (1000
我有 2 个 2d numpy 数组,A 的形状为 (i,j) ,B 的形状为 (i, k),其中 j >> k。我想定义一个新的 3d 数组 C,使得 C 中的每个元素都是 A 中每一列与整个矩阵
给定数组 A 和 B 的两个数组,我需要测试 A (ai) 中的每个子数组与其 B (bi) 中相应子数组的相等性: import numpy as np a1 = np.array([1, 2, 3
我有两个具有相同形状、索引和列的 Pandas 数据框 A,B。 A 的每个元素都是一个 np.ndarray,形状为 (n,1),B 的每个元素是一个浮点值。现在我想高效将 B 逐元素附加到 A。一
假设我有以下基本的 if 语句: if (A ~= 0) % do something like divide your favorite number by A else % do so
我正在使用 pandas 和 matplotlib 构建条形图。我需要错误栏,但我的函数没有创建它们,我收到以下消息: C:\Python27\lib\site-packages\matplotlib
我有这两个数据结构: a = np.array([1,2,3]) ts = pd.TimeSeries([1,2,3]) 最后我想得到的是: 1 2 3 2 4 6 3 6 9 最佳答案
我正在寻找一种有效获取 boolean 值数组的方法,其中给定两个大小相等的数组 a 和 b,如果对应的每个元素都为真a 的元素出现在 in b 的相应元素中。 例如下面的程序: a = numpy.
我在 Python 3 上使用 Pandas 0.19.1。我收到关于这些代码行的警告。我正在尝试获取一个列表,其中包含字符串 Peter 在列 Unnamed: 5 中存在的所有行号。 df = p
我收到警告,我想检查这是否会中断。我在很多情况下都像这样使用 np.where(对我来说,它类似于 excel 中的 if 语句)。有没有更好或更多的pythonic或pandas方法来做到这一点?我
我将从问题的陈述开始。之后,我将演示一个简短的编码序列,逐步构建解决方案,直到出现问题。显然,这里的目标是计算 b。我在问如何最有效地做到这一点,理想情况下使用元素级 numpy 向量表达式,完全没有
1.我想检查我刚刚使用的分类器的准确性,代码如下: print((np.array(result)==label_test[:2000]).mean()) 2.result 是一个列表,所以我只是将其
我是一名优秀的程序员,十分优秀!