我想将函数应用于我的numpy数组的每个元素。 我做了这样的事情;但它仍然打印原始数组。可能是什么问题?
def my_func(k):
3.15+ k*12**45+16
arr = np.array([12,45,45],[12,88,63])
my_func(arr)
print (arr)
答案 0 :(得分:5)
试试这个:
def my_func(k):
return 3.15 + k * 12 ** 45 + 16
arr = np.array([[12, 45, 45], [12, 88, 63]])
print my_func(arr)
输出:
[[4.388714385610605e+49 1.6457678946039768e+50 1.6457678946039768e+50]
[4.388714385610605e+49 3.218390549447777e+50 2.3040750524455676e+50]]
问题是您没有从函数返回值。然后,您没有正确定义np.array
的数据。最后,您不要将my_func
的结果设置为变量。
答案 1 :(得分:0)
如果你这样做:
import numpy as np
def my_func(k):
return 3.15 + k*12**45+16
arr = np.array(([12,45,45],[12,88,63]))
print (arr)
arr = my_func(arr)
print (arr)
你明白了:
[[12 45 45]
[12 88 63]]
[[4.388714385610605e+49 1.6457678946039768e+50 1.6457678946039768e+50]
[4.388714385610605e+49 3.218390549447777e+50 2.3040750524455676e+50]]