如何将多变量函数应用于100x100阵列?

2024-04-24 09:59:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用python来计算函数的输出,例如:

$f(x)=x+y$

其中x和y是数组中点的坐标。所以,点5,5的值是10。这将基本上生成(x,y)的图像和相关的像素强度值。你知道吗

现在我在Python/Pandas中有一个100x100的数据帧,我想知道如何实际执行这个计算。我的最佳猜测是迭代每一行,使用行的索引(y)和元素的索引(x),将这两个值传递到函数中,并将点设置为该值。你知道吗

这本质上是一个基本的多变量作图问题。希望有人有这样的经验。谢谢您!你知道吗


Tags: 数据函数图像元素pandas像素数组经验
1条回答
网友
1楼 · 发布于 2024-04-24 09:59:58

有numpy函数fromfunctionindices。他们可能会做你想做的事。你知道吗

import numpy as np

np.fromfunction( lambda r, c: r+c, shape = (5,5)) 
# array([[0., 1., 2., 3., 4.],
#        [1., 2., 3., 4., 5.],
#        [2., 3., 4., 5., 6.],
#        [3., 4., 5., 6., 7.],
#        [4., 5., 6., 7., 8.]])

fromfunction将函数作为第一个参数,然后是形状。它在函数中使用轴的索引。函数需要的参数数量与形状中的DIM数量相同。你知道吗

np.indices((3,3))
# array([[[0, 0, 0],     # Row coordinates
#         [1, 1, 1],
#         [2, 2, 2]],
#
#        [[0, 1, 2],     # Column coordinates
#         [0, 1, 2],
#         [0, 1, 2]]])

这些可以用作函数参数来驱动结果。你知道吗

还有np.ogrid公司以及np.mgrid公司产生np.阵列用于任何计算。很大程度上取决于你想做什么。你知道吗

编辑:np.from函数使用关键字参数。你知道吗

def test ( a, b, c, m0=1, m1 =1):  # Specify function with kwargs.
    return a * m0 + b * m1 + c

np.fromfunction(test, (4, 3, 5 ), m0=100, m1=10) # Change he kwargs at run time.

# array([[[  0.,   1.,   2.,   3.,   4.],
#         [ 10.,  11.,  12.,  13.,  14.],
#         [ 20.,  21.,  22.,  23.,  24.]],

#        [[100., 101., 102., 103., 104.],
#         [110., 111., 112., 113., 114.],
#         [120., 121., 122., 123., 124.]],

#        [[200., 201., 202., 203., 204.],
#         [210., 211., 212., 213., 214.],
#         [220., 221., 222., 223., 224.]],

#        [[300., 301., 302., 303., 304.],
#         [310., 311., 312., 313., 314.],
#         [320., 321., 322., 323., 324.]]])

相关问题 更多 >