【发布时间】:2019-04-20 19:26:02
【问题描述】:
假设我创建了一个 3x3 NumPy 矩阵。将函数应用于矩阵中的所有元素的最佳方法是什么,尽可能不循环遍历每个元素?
import numpy as np
def myFunction(x):
return (x * 2) + 3
myMatrix = np.matlib.zeros((4, 4))
# What is the best way to apply myFunction to each element in myMatrix?
编辑:如果函数是矩阵友好的,当前提出的解决方案效果很好,但是如果它是这样一个只处理标量的函数呢?
def randomize():
x = random.randrange(0, 10)
if x < 5:
x = -1
return x
唯一的方法是遍历矩阵并将函数应用于矩阵内的每个标量吗?我不是在寻找一个特定 解决方案(例如如何随机化矩阵),而是寻找一个通用 解决方案来在矩阵上应用函数。希望这会有所帮助!
【问题讨论】:
-
对于许多基本函数、运算符和来自它们的表达式,它只是
myFunction(myMatrix) -
您的函数适用于整个数组。但如果该函数真的只适用于标量,则需要某种 python 循环。
标签: python python-3.x numpy matrix