向量化 Python 函数
2021/11/26 17:12:39
本文主要是介绍向量化 Python 函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
我有一个名为的旧函数 old_func
,它将两个位置参数作为输入, x
并且 y
. 函数的输入是这样写的,使用元组作为输入:
<span style="color:#444444"><span style="background-color:#f6f6f6"><span style="color:#333333"><strong>def </strong></span> <span style="color:#880000"><strong>old_func </strong></span>(位置) : x, y = 位置 <span style="color:#333333"><strong>返回</strong></span>x ** <span style="color:#880000">2</span> + y ** <span style="color:#880000">2</span></span></span>
我现在想要一种在值网格上调用函数的快速简便的方法:
<span style="color:#444444"><span style="background-color:#f6f6f6">xx = numpy.linspace(0, 1, 100) yy = numpy.linspace(0, 1, 100) X, Y = numpy.meshgrid(xx, yy) array_positions = (X,Y) old_fun(array_positions)</span></span>
目的是x
对函数中的每个操作 都对所有的 X
和 相同的 完成 y
。我尝试使用矢量化函数, 但这不起作用。我不想更改函数以接受 NumPy 数组,因为这将花费太长时间。
下面的代码可以解决问题,并为您省去创建 array_positions
.
首先,使用 来展平 并 变成形状为 的 NumPy 数组 。 ravel X
Y
(10000,)
<span style="color:#444444"><span style="background-color:#f6f6f6">X_flattened = X.ravel() Y_flattened = Y.ravel()</span></span>
然后,使用 来实现自定义函数,沿着这些扁平数组的长度迭代。
<span style="color:#444444"><span style="background-color:#f6f6f6">float_array = np.apply_along_axis(old_func, <span style="color:#880000">0</span> , (X_flattened, Y_flattened))</span></span>
最后,将输出数组重塑为所需的 形状 (100, 100)
。
<span style="color:#444444"><span style="background-color:#f6f6f6"><span style="color:#333333"><strong>np </strong></span><span style="color:#880000">.reshape</span> (float_array, ( <span style="color:#880000">100</span> , <span style="color:#880000">100</span> ))</span></span>
这篇关于向量化 Python 函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-18初探Python股票自动化交易:入门指南
- 2024-09-18Python量化入门:轻松掌握量化分析基础与实战
- 2024-09-18Python量化交易:入门指南与实践
- 2024-09-18Python量化交易:入门指南与实战技巧
- 2024-09-14Python人工智能项目实战:从零开始的实践指南
- 2024-09-14探索Python人工智能资料:初学者的指南
- 2024-09-14Python人工智能资料:初学者的全面指南
- 2024-09-13Matplotlib入门:轻松绘制Python数据可视化图表
- 2024-09-13Python人工智能:初学者的入门指南
- 2024-09-13Python人工智能:轻松入门与实践