Массив — это структура данных, которую можно импортировать с помощью модуля массива.
import array
Этот модуль представляет собой набор основных значений: символы, целые числа, числа с плавающей запятой.
Массивы представляют собой типы последовательностей и действуют как списки, за исключением того, что все элементы массива должны иметь один и тот же тип.
Синтаксис:
arrayName = array.array
(typecode[, initializer])
initializer: должен быть списком, байтом, подобным объекту (например, b'Hello World'
), или итерируемым по элементам соответствующего типа.
код типа : символ для указания типа массива (см. раздел примечаний)
# Let's explore bytes-like-object a lil bit: _str = 'hello world' str_bytes = _str.encode("ascii") print(str_bytes) for b in str_bytes: print(chr(b)," is actually ", b)
Выход:
b'hello world' h is actually 104 e is actually 101 l is actually 108 l is actually 108 o is actually 111 is actually 32 w is actually 119 o is actually 111 r is actually 114 l is actually 108 d is actually 100
Давайте создадим массив целочисленного типа («i» для указания целочисленного типа [для получения дополнительной информации см. примечание ниже])
new_array = array.array('i',[1,3,4,6,8]) print(new_array)
массив('i', [1, 3, 4, 6, 8])
Note: type code C Type Minimum size of bytes 'b' signed integer 1 'B' unsigned integer 1 'u' Unicode character 2 'h' signed integer 2 'H' unsigned integer 2 'i' signed integer 2 'I' unsigned integer 2 'l' signed integer 4 'L' unsigned integer 4 'q' signed integer 8 'Q' unsigned integer 8 'f' floating point 4 'd' floating point 8
Символ Unicode может быть 16-битным или 32-битным, в зависимости от платформы.
Почему?
- Массив занимает меньше места в памяти, чем список.
Он имеет аналогичные операции, такие как списки
for j in new_array: print(j/4)
0.25
0.75
1.0
1.5
2.0
Доступ к элементу в 0-й позиции
print(new_array[0]) >>> 1
Доступ до 2-й позиции
print(new_array[:-3]) >>> array('i', [1, 3])
Так же, как и список, эти методы мы также можем использовать в массивах.
- Массивы изменяемы, что можно изменить? Вы можете прочитать об этом в моей предыдущей статье здесь
- Массивы хороши для числовых операций
import numpy as np nu_array = np.array([2, 4, 6, 12]) divided_values = nu_array/2 print(divided_values) print (type(divided_values))
Выход:
[1. 2. 3. 6.] <class 'numpy.ndarray'>
Но если мы используем список, он покажет ошибку
nu_list = [2, 4, 6, 12] divided_list = nu_list/3
Выход:
Traceback (most recent call last): File "<string>", line 27, in <module> TypeError: unsupported operand type(s) for /: 'list' and 'int'
мы можем использовать цикл, но это снизит эффективность
for l in nu_list: print(l/2)
Выход:
1.0 2.0 3.0 6.0
Вот почему для числовых операций используются массивы (массивы NumPy).