将 2 python 列表转换为 1 个 Numpy 数组,格式为 ((list1, list2))
Convert 2 python lists into 1 Numpy Array with the format ((list1, list2))
代码:
import matplotlib.pyplot as plt
import numpy as np
poslist = []
numlist = []
i = 1
num = int(input('Number to check?'))
plt.title(str(num) + ': Collatz Graph')
plt.xlabel('Step')
plt.ylabel('Value')
print(num)
poslist.append(i)
numlist.append(num)
while True:
i = i + 1
if num % 2 == 0:
num = num // 2
print(num)
elif num == 1:
break
else:
num = num * 3
num = num + 1
print(num)
poslist.append(i)
numlist.append(num)
axislist = np.array((poslist, numlist))
print(axislist)
plt.plot(axislist)
plt.show()
我正在尝试将 2 个列表变成一个 Numpy 数组。 poslist
,第一个列表,将添加一个数字,每一步从前一步递增 1。 (例如 [1, 2, 3, 4]
)。第二个列表 numlist
将在与 Collatz Conjecture 相对应的每个步骤后附加一个数字。我需要将这两个与格式结合起来:((poslist, numlist))
。然后将其输入到 matplotlib.plot()
函数中,该函数会将其转换为图表。
poslist
将在折线图上显示 x 轴,numlist
将显示 y 轴。但是,使用我的代码,它不会输出值变化的连续线,但会输出许多没有可辨别的来源的彩色线,除了一条从 0 开始到 运行 到 运行 的值y 轴上的代码,x 轴上从 0 到 1:
做plt.plot(*axislist)
.
默认情况下,plt.plot 将单个参数解析为 y 坐标。因此,在您的情况下,每一列都用于定义一行。
您需要同时传递 x 坐标和 y 坐标,您可以通过添加 *.在 Python 中,* 会将 numpy 数组拆分为由其行定义的两个子数组。
代码:
import matplotlib.pyplot as plt
import numpy as np
poslist = []
numlist = []
i = 1
num = int(input('Number to check?'))
plt.title(str(num) + ': Collatz Graph')
plt.xlabel('Step')
plt.ylabel('Value')
print(num)
poslist.append(i)
numlist.append(num)
while True:
i = i + 1
if num % 2 == 0:
num = num // 2
print(num)
elif num == 1:
break
else:
num = num * 3
num = num + 1
print(num)
poslist.append(i)
numlist.append(num)
axislist = np.array((poslist, numlist))
print(axislist)
plt.plot(axislist)
plt.show()
我正在尝试将 2 个列表变成一个 Numpy 数组。 poslist
,第一个列表,将添加一个数字,每一步从前一步递增 1。 (例如 [1, 2, 3, 4]
)。第二个列表 numlist
将在与 Collatz Conjecture 相对应的每个步骤后附加一个数字。我需要将这两个与格式结合起来:((poslist, numlist))
。然后将其输入到 matplotlib.plot()
函数中,该函数会将其转换为图表。
poslist
将在折线图上显示 x 轴,numlist
将显示 y 轴。但是,使用我的代码,它不会输出值变化的连续线,但会输出许多没有可辨别的来源的彩色线,除了一条从 0 开始到 运行 到 运行 的值y 轴上的代码,x 轴上从 0 到 1:
做plt.plot(*axislist)
.
默认情况下,plt.plot 将单个参数解析为 y 坐标。因此,在您的情况下,每一列都用于定义一行。 您需要同时传递 x 坐标和 y 坐标,您可以通过添加 *.在 Python 中,* 会将 numpy 数组拆分为由其行定义的两个子数组。