Подсчет непрерывных чисел в списке - PullRequest
0 голосов
/ 04 декабря 2018

Я совершенно новичок в теме программирования, но заинтересован.Я пишу в 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 

Я хотел бы знать, есть ли у кого-нибудь подсказка / представление о том, как я мог бы это сделать.Эта часть - меньшая часть цепочки Маркова, для которой мне нужна частота каждого числа.

Спасибо, что поделились Надим

1 Ответ

0 голосов
/ 04 декабря 2018

Ниже приведен грубый способ сделать это.Я создаю список списков, а затем преобразую его в массив 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]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...