【发布时间】:2017-04-02 19:27:49
【问题描述】:
python 新手并尝试自学该语言。我了解 R 和 SAS 的基础知识,但是我仍在学习如何操作数组并在 spyder 中学习基本的 python。
我真的很想得到您的帮助,将 x 和 y 都输入到函数 f(x,y) 中(例如 sin(xy) 为简单起见)。
通常在 R 中,我会通过扩展 x 和 y 的值来创建一个数据框,以创建每个组合(每行唯一的 x 和 y),然后通过我的函数运行这些行并在我的数据框中附加一个新列,然后使用 lattice 等绘制等高线图。
对于同一个函数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'])
感谢您的帮助!
【问题讨论】:
-
你可以试试stackoverflow.com/questions/8722735/…。在这里,他们通过仔细创建 xs 和 ys 来创建 x 和 y 的组合。
-
一种方法是创建一个长度为
len(x)*len(y)的np.linspace,然后通过获取该数组的%(模数)和/(除法)将两个列向量堆叠成一个矩阵长度 -
一种方法是在两个索引列表上使用 itertools.combinations。然后使用索引从您的数组中获取项目并将它们传递给您的函数
-
感谢您的所有回复。我会试试这些,看看我想出了什么!