Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 1, 2010 18:57:54

dycode
От:
Зарегистрирован: 2010-12-01
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Python многомерные массивы

Подскажите как создать многомерный массив в питоне?

делаю так:

arr = [[]]
arr[0].append('test')
print arr
работает нормально, пробую так
arr = [[]]
arr[0].append('test')
arr[1].append('qwe2')
print arr
Получаю ошибку:
arr.append('qwe2')
IndexError: list index out of range
В книгах тоже не могу найти создание многомерных массивов / кортежей…

p.s. Python 2.6.6



Офлайн

#2 Дек. 1, 2010 19:22:08

Eliont
От:
Зарегистрирован: 2010-05-30
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Python многомерные массивы

Очень просто:

 
massive = []
for x in range(5):
massive.append([])
for y in range(5):
massive[-1].append(x*y)

print massive[2][2]
print massive
massive = [[[],[],[],[],[]],[],[],[],[],[],[],[],[],[],[],[],[],[],[]]
print massive
Вывод:
4

[[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8], [0, 3, 6, 9, 12], [0, 4, 8,
12, 16]]

[[[], [], [], [], []], [], [], [], [], [], [], [], [], [], [], [], [], [], []]



Отредактировано (Дек. 1, 2010 19:26:14)

Офлайн

#3 Дек. 1, 2010 19:34:21

romis
От:
Зарегистрирован: 2010-10-04
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Python многомерные массивы

Пример из книги М.Лутц “Изучаем Python”

Один из простейших способов представления матриц (многомерных массивов) в
языке Python заключается в использовании вложенных списков.
Ниже приводится пример двухмерного массива размером 3x3, построенного на базе списков:

>>> matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
С помощью первого индекса извлекается целая строка (в
действительности - вложенный список), а с помощью второго извлекается элемент
этой строки:
>>> matrix[1]
[4, 5, 6]
>>> matrix[1][1]
5
>>> matrix[2][0]
7



Офлайн

#4 Дек. 2, 2010 20:35:36

gistator
От:
Зарегистрирован: 2010-11-19
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Python многомерные массивы

В питоне нет массивов, но есть NumPy – библиотека позволяющая работать с многомерными массивами.



Офлайн

#5 Дек. 3, 2010 06:00:24

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

Python многомерные массивы

В питоне есть списки, разница только в любом типе элементов и скорости. Но если изначально известно, что нужен массив чисел - почему бы и не numpy.



Офлайн

#6 Дек. 3, 2010 06:31:28

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Python многомерные массивы

Про скорость - подробнее, пожалуйста



Офлайн

#7 Дек. 3, 2010 07:19:02

gistator
От:
Зарегистрирован: 2010-11-19
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Python многомерные массивы

При использовании NumPy вычислительные алгоритмы работают быстрее.



Офлайн

#8 Дек. 3, 2010 07:28:04

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Python многомерные массивы

Быстрее будут только те алгоритмы, которые реализованы функциями numpy/scipy.
Бегать циклами и складывать элемент с элементом занимает столько же.
Но, в целом, идею понял. Спасибо.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version