我对编程这个话题完全陌生,但是很感兴趣。 我正在python 3.x中进行编码,对我的最新主题有疑问:
我们有一个列表,其中包含数千个1到7之间的随机生成的整数。
import random
list_of_states = []
n = int(input('Enter number of elements:'))
for i in range(n):
list_of_states.append(random.randint(1,7))
print (list_of_states)
然后,我要计算此列表中的连续数字并将其放入numpy.array
example: [1, 2, 3, 4, 4, 4, 7, 3, 1, 1, 1]
1 1
2 1
3 1
4 3
7 1
3 1
1 3
我想知道是否有人对我如何做有一个提示/想法。 这部分是马尔可夫链的较小部分,因此我需要每个数字的频率。
感谢分享 纳丁
答案 0 :(得分:0)
以下是执行此操作的粗略方法。我正在创建列表列表,然后将其转换为numpy数组。请仅将此作为指导,并即兴使用。
import numpy as np
num_list = [1,1,1,1,2,2,2,3,4,5,6,6,6,6,7,7,7,7,1,1,1,1,3,3,3]
temp_dict = {}
two_dim_list = []
for x in num_list:
if x in temp_dict:
temp_dict[x] += 1
else:
if temp_dict:
for k,v in temp_dict.items():
two_dim_list.append([k,v])
temp_dict = {}
temp_dict[x] = 1
for k,v in temp_dict.items():
two_dim_list.append([k,v])
print ("List of List = %s" %(two_dim_list))
two_dim_arr = np.array(two_dim_list)
print ("2D Array = %s" %(two_dim_arr))
输出:
List of List = [[1, 4], [2, 3], [3, 1], [4, 1], [5, 1], [6, 4], [7, 4], [1, 4], [3, 3]]
2D Array = [[1 4]
[2 3]
[3 1]
[4 1]
[5 1]
[6 4]
[7 4]
[1 4]
[3 3]]