为什么我不能向t输入浮点数?

时间:2019-07-10 18:43:40

标签: python numpy range

我必须编码基本的逻辑增长,以后将用于肿瘤生长。

我必须将float值放入t,但这给了我一个错误,我认为这是因为范围只能采用整数。但是范围必须是t。有什么办法吗?

物流增长

import numpy as np
import matplotlib.pyplot as plt
import csv

val = float(input("Enter your value: ")) 
r = .25 # growth rate / year ,|(birth/death rate)
K = 100 # carrying capacity
t=val
num = np.zeros(t+1)
num[0] = 1

for i in range(t):
    num[i+1] = num[i]+r*num[i]*(1-num[i]/K)
    row= (i+1,'\t\t',format(num[i], '.8f'))
    print (row)

    with open('plot.csv', 'a') as csvFile:
            writer = csv.writer(csvFile, delimiter=' ')
            writer.writerow(row)
            csvFile.close()

plt.plot(range(t+1),num, 'b')
plt.xlabel('Time')
plt.ylabel(' Cell Number')
plt.title('Logistic Growth')
plt.axvline(np.argmax(np.diff(num)),  color = 'k'  )

plt.show()

1 个答案:

答案 0 :(得分:3)

如果要处理存储在float中的整数,则可以将t转换为int

>>> range(int(7.0))
[0, 1, 2, 3, 4, 5, 6]

如果您确实需要浮点范围,则np.arange()可以实现:

>>> np.arange(0.2, 6.4, 0.5)
array([ 0.2,  0.7,  1.2,  1.7,  2.2,  2.7,  3.2,  3.7,  4.2,  4.7,  5.2,
        5.7,  6.2])