gpt4 book ai didi

python - 将函数应用于 NumPy 矩阵中的所有元素

转载 作者:行者123 更新时间:2023-12-01 08:44:30 26 4
gpt4 key购买 nike

假设我创建了一个 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

唯一的方法是循环遍历矩阵并将函数应用于矩阵内的每个标量吗?我不是在寻找特定的解决方案(例如如何随机化矩阵),而是在矩阵上应用函数的通用解决方案。希望这有帮助!

最佳答案

这显示了在不使用显式循环的情况下对整个 Numpy 数组进行数学运算的两种可能方法:

import numpy as np                                                                          

# Make a simple array with unique elements
m = np.arange(12).reshape((4,3))

# Looks like:
# array([[ 0, 1, 2],
# [ 3, 4, 5],
# [ 6, 7, 8],
# [ 9, 10, 11]])

# Apply formula to all elements without loop
m = m*2 + 3

# Looks like:
# array([[ 3, 5, 7],
# [ 9, 11, 13],
# [15, 17, 19],
# [21, 23, 25]])

# Define a function
def f(x):
return (x*2) + 3

# Apply function to all elements
f(m)

# Looks like:
# array([[ 9, 13, 17],
# [21, 25, 29],
# [33, 37, 41],
# [45, 49, 53]])

关于python - 将函数应用于 NumPy 矩阵中的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53357638/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com