我在没有 NumPy 的情况下在 Python 中完成了这个:
def fun_list(list_, x):
#set list to odd numbers in list_ raised to number x
s=[]
s= [i**x for i in list_ if (i%2)!=0]
list_=s
print(list_)
测试功能:
list1 = [1, 2, 3, 4]
list2 = [2, 3, 4, 5]
print(fun_list(list1, 2))
print(fun_list(list2, 3))
结果:
[1, 9]
None
[27, 125]
None
现在需要使用 NumPy 来完成它,我不明白,也无法在网上找到太多关于它的信息,而且我发现的东西对我来说没有意义。这是我试过的:
import math
#set list to odd numbers in list_ raised to number x
a=np.array([array_])
pwr=x
a=np.array([a if np.mod(a)!=0])
a=np.array([np.power(a,pwr)])
print (a)
测试功能:
import numpy as np
array1 = np.array([1, 2, 3, 4])
array2 = np.array([2, 3, 4, 5])
print(fun_array(array1, 2))
print(fun_array(array2, 3))
结果:
File "<ipython-input-161-fc4f5193f204>", line 21
a=np.array([a if np.mod(a)!=0])
^
SyntaxError: invalid syntax
我不明白如何使用 NumPy 只获取数组中的奇数。
原文由 Jennifer Crosby 发布,翻译遵循 CC BY-SA 4.0 许可协议
干得好:
输出
Here, the operation
a%2==1
returns a Boolean arrayarray([ True, False, True, False, True, False], dtype=bool)
which isTrue
if the remainder/modulus after dividing by2
(which is given通过a%2
) 值为1
和False
如果它的0
将其用作数组的参数a
将仅返回a
参数为“真”的值。这只会从a
产生奇数。**
然后对这些奇数进行平方。如果您想要偶数,一种方法是将a%2==0
放入您的条件中。