Форум сайта python.su
0
Подскажите пожалуйста решение. Поиск не помог к сожалению. Недавно начал изучать python, еще совсем чайник можно сказать. Для решения моей задачи требуется промежуточная операция. Надо создать 2 списка из двумерного массива: в одном все вторые (по индексу) элементы списка массивов, в другом третьи (по индексу) элементы. У меня решение длинное, но можно сделать как-то при помощи цикла, потому что в задаче у меня массив двумерный в несколько сотен строчек. Вот пример:
a = [[1,2,3,4,5,6], [2,3,4,5,6,7], [3,4,5,6,7,8], [4,5,6,7,8,9]] # Двумерный массив b = [] # Создаем список b0=(a[0][2]); b1=(a[1][2]); b2=(a[2][2]) b.append(b0),b.append(b1),b.append(b2) # Заносим в список каждый элемент с индексом 2 из a c = [] # Создаем список c0=(a[0][3]); c1=(a[1][3]); c2=(a[2][3]) c.append(c0),c.append(c1),c.append(c2) # Заносим в список каждый элемент с индексом 2 из a
Офлайн
>>> import numpy as np >>> a = np.array([[1,2,3],[4,5,6],[7,8,9]]) >>> a array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) >>> a[:,0] array([1, 4, 7]) >>> a[:,1] array([2, 5, 8]) >>> list(a[:,0]) [1, 4, 7] >>>
Отредактировано vic57 (Май 25, 2016 08:32:49)
Офлайн
0
Спасибо. Но теперь появились новые вопросы.
Как получить индекс максимального, минимального числа из массива?
Как сделать чтобы данные в массиве из строк преобразовать в целые числа и чтобы они были через запятую.
Дело в том, что у меня в массив загружаются данные из файла name.txt (или name.csv) и они идут вот так в массиве уже:
['401' '0' '12' '18'] ['402' '1' '21' '8']
Офлайн
73
по перврму вопросу
a = [[1,2,3,4,5,6],[2,3,4,5,6,7],[3,4,5,6,7,8],[4,5,6,7,8,9]]
d = [] ; c = []
for elem in a:
d.append(elem[2])
c.append(elem[3])
['401' '0' '12' '18']
[4,0,1,0,1,2,1,8]
Отредактировано marvellik (Май 25, 2016 11:20:07)
Офлайн
1
Oleg256
Как вариант:
a = [['1','2','3','4','5','6'],['2','3','4','5','6','7'],['3','4','5','6','7','8'],['4','5','6','7','8','9']] print('Максимальное значение ==> ', max(a)) # Получать лучше из одномерного (хотя, зависит от услови) print('Минимальное значение ==> ', min(a)) # Получать лучше из одномерного (хотя, зависит от услови) print('Максимальный индекс ==> ', a.index(max(a))) print('Из строки в int ==> ', [int(j) for x in a for j in x])
Отредактировано ivsatel (Май 25, 2016 13:05:43)
Офлайн
vic57это все в numpy есть.
Как получить индекс максимального, минимального числа из массива?
Как сделать чтобы данные в массиве из строк преобразовать в целые числа и чтобы они были через запятую.
Дело в том, что у меня в массив загружаются данные из файла name.txt (или name.csv) и они идут вот так в массиве уже:
f = open('name.txt','r').readlines() for i in xrange(3): print f[i]
Отредактировано vic57 (Май 25, 2016 14:03:49)
Офлайн
0
Спасибо большое! Вы мне очень помогли. Буду учить матчасть, последняя ссылка почему только не работает, но я уже знаю что искать.
У меня еще есть нерешенная задача, но надеюсь сам справлюсь, если не получится тогда попрошу помощи.
Офлайн