我试图为一年中的每个月生成0到1之间的随机数:例如,一月有31天,我想生成31*24个这样的随机数,并将它们存储在一个数组中。每12个月相同。我希望它们都存储在同一个表或矩阵下,可以调用这些表或矩阵进行进一步的操作。 在MATLAB中,通过将for循环结果存储在单元数组中,可以很容易地实现这一点。我想用Python做同样的事情。如果我附加所有的随机数,它们只是创建一个looooong数组(1D),但是我更喜欢一个每个月有12列1的数组,其中随机数是垂直存储的。由于每个月的天数不同,每个月列的长度也会不同
# Find the no of hours in each month in a certain year
import calendar
k = 1
hrs = np.array([])
for k in range(12):
no_hrs = (calendar.monthrange(2020, k+1) [1])*24 # 2020 is a random year
hrs = np.append(hrs,no_hrs)
hrs = hrs.astype(int) # no of hrs for each month
# Now we generate the random numbers and store them in an 1D array
rndm = np.array([])
k = 1
for k in range(12):
for _ in range(hrs[(k)]):
value = random()
rndm = np.append(value,rndm)
rndm # this is the array containing 366*24 elements (for a year)
# But I would like the array to be splitted in months
数组将包含366*24=8784个元素(一年) 但我希望这个阵列能在几个月内分裂(列大小不等)
可以使用np.array列表来完成 我添加了每个数组长度的打印
它会打印出来
如果你想用月份名称而不是数字,你可以用字典
相关问题 更多 >
编程相关推荐