我最近开始学习Python。我了解到,为了定义自变量(下例中的 z),您可以使用 numpy.linspace() 编写:from matplotlib import pyplot as ppimport numpy as npfrom math import pi#z=np.linspace(1,-1) z definition worksz=np.arange(1,-1) #z definition does not workw=zpp.plot(z,w)pp.xlabel("Input")pp.ylabel("Output")pp.title("Function")pp.show()print(z,w)但是,如果我们使用 np.arange 定义 z (参见注释行,似乎不可能显示图(没有图表出现)。如果我想对自变量使用后一个定义,我仍然可以绘制其他变量或我被迫使用 linspace 定义吗?谢谢
1 回答
一只斗牛犬
TA贡献1784条经验 获得超2个赞
np.linspace(1, -1)
1
创建一个以 开头和结尾的数字数组-1
。默认采取 50 步,因此每步的长度为-2/49
。通常,步数是明确给出的,例如np.linspace(1, -1, 200)
。标准情况下,起始值选择小于停止值,但两种方法都有效。
np.arange(1, -1)
创建一个从 1 开始的数组,增加一个步长(默认为 1),当值大于或等于停止值时结束。因此,在这种情况下,它会立即停止,创建一个空数组。np.arange(1, -1, -1)
将采取 -1 的步长,并创建一个数组[1, 0]
,并在 之前停止-1
。
当这些数组像单个变量一样在表达式中使用时,Numpy 的魔力就开始了。这称为广播。
这是一个示例图,显示了 的工作原理np.linspace
。w
仅针对 的 50 个给定值进行计算z
。请注意,虽然z
是从1
to创建的-1
,但默认图在右侧显示正值。另请注意,导入 matplotlib 的标准方法是 as plt
,这使得其他人更容易遵循代码。
from matplotlib import pyplot as plt
import numpy as np
z = np.linspace(1, -1)
w = np.sin(z * np.pi)
plt.plot(z, w, '-bo')
plt.xlabel('$z$')
plt.ylabel(r'$w = \sin(z * pi)$')
plt.show()
添加回答
举报
0/150
提交
取消