Добавил:
свои люди в ТПУ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛК / lec-03

.pdf
Скачиваний:
1
Добавлен:
14.01.2026
Размер:
17.05 Mб
Скачать

Метод reshape()

b[0, 0] = -99 print(b)

[[-99. 2.]

[3. 4.]]

print(a)

[-99. 2. 3. 4.]

cлайд 17/58

Метод reshape()

Если требуется поместить числа от до в таблицу :

grid = np.arange(1, 10).reshape((3, 3)) print(grid)

[[1 2 3] [4 5 6] [7 8 9]]

Размер исходного массива должен соответствовать размеру измененного!

cлайд 18/58

Транспонирование массива

Метод transpose() возвращает представление массива с транспонированными осями. Для двумерного массива это обычная операция транспонирования матрицы:

a = np.linspace(1, 6, 6).reshape(3, 2) print(a)

[[1., 2.], [3., 4.], [5., 6.]]

print(a.transpose()) # Или просто a.T

[[1., 3., 5.], [2., 4., 6.]]

cлайд 19/58

Объединение массивов

Слияние, или объединение, двух массивов в библиотеке NumPy выполняется в основном с

помощью функций np.concatenate() , np.vstack() и np.hstack() .

Функция np.concatenate() принимает на входе кортеж или список массивов:

x = np.array([1, 2, 3]) y = np.array([3, 2, 1])

print(np.concatenate([x, y]))

[1, 2, 3, 3, 2, 1]

Можно объединять более двух массивов одновременно:

z = [99, 99, 99] print(np.concatenate([x, y, z]))

[ 1 2 3 3 2 1 99 99 99]

cлайд 20/58

Объединение массивов

Для объединения двумерных массивов можно также использовать np.concatenate() :

grid = np.array([[1, 2, 3], [4, 5, 6]])

print(np.concatenate([grid, grid])) # слияние по первой оси координат

[[1, 2, 3], [4, 5, 6], [1, 2, 3], [4, 5, 6]]

print(np.concatenate([grid, grid], axis=1)) # слияние по второй оси координат

[[1, 2, 3, 1, 2, 3], [4, 5, 6, 4, 5, 6]]

cлайд 21/58

Объединение массивов

Для работы с массивами с различающимися измерениями удобнее и понятнее использовать функции np.vstack() (вертикальное объединение) и np.hstack() (горизонтальное объединение):

x = np.array([1, 2, 3])

grid = np.array([[9, 8, 7], [6, 5, 4]])

print(np.vstack([x, grid])) # Объединяет массивы по вертикали

[[1, 2, 3], [9, 8, 7], [6, 5, 4]]

y = np.array([[99], [99]]) # Объединяет массивы по горизонтали print(np.hstack([grid, y]))

[[

9,

8,

7,

99],

 

[

6,

5,

4,

99]]

cлайд 22/58

 

 

 

 

 

Срезы массивов: доступ к подмассивам

x[начало:конец:шаг]

Срезы массивов: доступ к подмассивам

Синтаксически срезы массивов NumPy соответствуют срезам стандартных списков Python: :

x = np.arange(10) print(x)

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print(x[:5])

array([0, 1, 2, 3, 4])

print(x[4:7])

array([4, 5, 6])

cлайд 23/58

Срезы массивов: доступ к подмассивам

Операция среза для массива NumPy возвращает представление (view), а не копию данных, как для списков Python.

a = np.linspace(1, 6, 6) print(a)

[1. 2. 3. 4. 5. 6.]

print(a[1:4:2]) # Элементы a[1] и a[3] (с шагом 2)

[2., 4.]

print(a[3::-2]) # Элементы a[3] и a[1] (с шагом -2)

[4., 2.]

cлайд 24/58

Срезы массивов: многомерные массивы

a = np.linspace(1, 12, 12).reshape(4, 3) print(a)

[[ 1.,

2.,

3.],

[

4.,

5.,

6.],

[

7.,

8.,

9.],

[10.,

11.,

12.]]

print(a[3, 1])

print(a[:, 1]) # Все элементы во втором столбце

11.0

[2., 5., 8., 11.]

# Все элементы в третьей строке

# Средние строки, начиная со второго столбца

print(a[2])

print(a[1:-1, 1:])

[7., 8., 9.]

[[5.,

6.],

cлайд 25/58

 

[8.,

9.]]

Соседние файлы в папке ЛК