Python 新手,正在尝试自学该语言。我了解 R 和 SAS 的基础知识,但我仍在学习如何操作数组并学习 spy 程序中的基本 python。
我真的很喜欢你的帮助,将 x 和 y 都输入到函数 f(x,y) 中(例如,为了简单起见,sin(xy))。
通常在 R 中,我会通过扩展 x 和 y 的值来创建一个数据框以创建每个组合(每行唯一的 x 和 y),然后通过我的函数运行这些行并在我的数据框中附加一个新列,以及使用点阵等绘制等高线图。
对于相同的函数 f(x,y) = z = sin(x,y),在 python 中我已经尝试过
x = np.linspace(0, 1, 100)
y = np.linspace(-1, 11, 100)
z= np.equ(x,y)
这显然行不通,但我不确定该怎么做。
这是在尝试操作以下代码后尝试的:Matplotlib line plot of x values against y :
import numpy as np
import matplotlib.pyplot as plt
fig,ax = plt.subplots(1)
# create some x data and some integers for the y axis
x = np.array([3,5,2,4])
y = np.arange(4)
# plot the data
ax.plot(x,y)
# tell matplotlib which yticks to plot
ax.set_yticks([0,1,2,3])
# labelling the yticks according to your list
ax.set_yticklabels(['A','B','C','D'])
感谢您的帮助!
最佳答案
您需要使用itertools.product
在这种情况下。它可用于生成包含所有可能组合的列表。
例如,如果 A = [1, 2]
且 B = [3, 4]
itertools.product
将返回一个可迭代的对象,它可以存储在这样的数组中,
C = list(itertools.product(A, B))
# C = [(1,3), (1,4), (2,3), (2,4)]
关于python - 将 x 和 y 数组的所有组合输入函数 f(x,y),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40685659/