Массив — это структура данных, которую можно импортировать с помощью модуля массива.

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).