Nas*_*uba 4 python numpy pythonxy
我试图理解以下逻辑地图图像的代码,但我被困在了
ys = [ ]
rs = numpy.linspace(0, 4, 400)
Run Code Online (Sandbox Code Playgroud)
什么rs意思?什么i in range()意思?我将衷心感谢您的帮助!
def f(x, r):
"""Discrete logistic equation with parameter r"""
return r*x*(1-x)
if __name__ == '__main__':
# initial condition for x
ys = []
rs = numpy.linspace(0, 4, 400)
for r in rs:
x = 0.1
for i in range(500):
x = f(x, r)
for i in range(50):
x = f(x, r)
ys.append([r, x])
ys = numpy.array(ys)
pylab.plot(ys[:,0], ys[:,1], '.')
pylab.show()
Run Code Online (Sandbox Code Playgroud)
rs = numpy.linspace(0, 4, 400)
Run Code Online (Sandbox Code Playgroud)
创建一个 numpy 数组,其中 400 个值在 0 和 4 之间等距(包括端点)。
以下是一些较小的示例:
In [17]: import numpy as np
In [18]: np.linspace(0, 4, 5)
Out[18]: array([ 0., 1., 2., 3., 4.])
In [19]: np.linspace(0, 4, 10)
Out[19]:
array([ 0. , 0.44444444, 0.88888889, 1.33333333, 1.77777778,
2.22222222, 2.66666667, 3.11111111, 3.55555556, 4. ])
Run Code Online (Sandbox Code Playgroud)
for i in range(50)在Python 教程(第 4.2 和 4.3 节)中进行了解释。
这里有一些注释可以帮助解释代码。
import numpy as np
import matplotlib.pyplot as plt
import pylab
import numpy
def f(x, r):
"""Discrete logistic equation with parameter r"""
return r*x*(1-x)
if __name__ == '__main__':
# initial condition for x
ys = []
rs = numpy.linspace(0, 4, 400)
# Loop through `rs`. `r` is assigned the values in `rs` one at a time.
for r in rs:
x = 0.1
# Repeat this loop 500 times.
# i is just a dummy variable since it is not used inside the for-loop.
for i in range(500):
# Evaluate f at (x, r). The return value is assigned to x.
# x is then fed back into f(x, r).
# This makes x jump around 500 times according to the logistic equation.
# r remains fixed.
x = f(x, r)
# Do this 50 times
for i in range(50):
# Again make the x jump around according to the logistic equation
x = f(x, r)
# Save the point (r, x) in the list ys
ys.append([r, x])
# ys is a list of lists.
# You can also think of ys as a list of [r, x] point.
# This converts the list of lists into a 2D numpy array.
ys = numpy.array(ys)
# ys[:,0] is a 1D array of r values
# ys[:, 1] is a 1D array of x values
# This draws a scatter plot of (r, x) points.
pylab.plot(ys[:,0], ys[:,1], '.')
pylab.show()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6472 次 |
| 最近记录: |