我在下面设计了这个代码,它基本上用作输入,用户的行数,列数,最高值和最低值。
import random
import math
nrows=int(input("enter the number of rows: "))
ncols=int(input("enter the number of columns: "))
lowval=float(input("enter the lowest value: "))
highval=float(input("enter the highest value: "))
def list(nrows, ncols, lowval, highval):
values=[[0, 0, 0, 0],[0, 0, 0, 0],[0, 0, 0, 0]]
for r in range(nrows):
for c in range(ncols):
values[r][c] = random.uniform(lowval,highval+1)
print(values)
list(nrows, ncols, lowval, highval)
现在,我正在努力的领域是尝试获取列表并将其转换为类似于图表的更有条理的东西,以便输出基本上反映了这一点,例如:
Number of rows: 4
Number of columns: 3
Low value: -100
High value: 100
0 1 2
0 7.715 6.522 23.359
1 79.955 -4.858 -71.112
2 49.249 -17.001 22.338
3 98.593 -28.473 -92.926
关于如何使我的输出看起来像上面所需的任何建议/想法?
编辑:我知道有一种方法可以通过使用熊猫来做到这一点,但我更想知道手动做..我在下面的代码中有点接近我想要的输出:
for i in range(ncols):
for a in range(nrows):
print('%-12i%-12i' % (random.uniform(lowval,highval+1), random.uniform(lowval,highval+1)))
这基本上给了我一个输出:
enter the number of rows: 2
enter the number of columns: 3
enter the lowest value: 10
enter the highest value: 100
94 36
95 33
20 79
17 19
57 63
60 30
我现在需要做的是基本上我的行和颜色与用户的输入相匹配,让我知道是否有办法!
答案 0 :(得分:0)
您将使用pandas
。它创建的结构化数据与此完全相同。
>>> import pandas as pd
>>> import numpy as np
>>> low = -100.
>>> high = 100.
>>> nrows = 4
>>> ncols = 3
>>> df = pd.DataFrame(np.random.uniform(lowval, highval+1, (nrows, ncols)))
>>> print(df)
0 1 2
0 7.247811 17.570162 32.860419
1 5.925314 14.012429 13.899928
2 22.602344 31.671225 18.199785
3 35.192664 11.216082 33.590036
此外,永远不要调用函数“list
”,因为它会覆盖默认的列表构造函数。