Атрибут T
Атрибут T класса ndarray возвращает транспонированную версию массива. Для двумерных массивов это означает, что строки и столбцы меняются местами. Для одномерных массивов атрибут T не изменяет форму, так как у них нет второго измерения для перестановки. Атрибут T является удобной альтернативой методу transpose и функции np.transpose.
Атрибут не принимает никаких параметров и возвращает новый массив, представляющий собой транспонированную версию исходного. Важно отметить, что атрибут T возвращает вид (view) данных, а не их копию, если это возможно, что делает его эффективным с точки зрения памяти.
Синтаксис
arr.T
Пример
Давайте создадим двумерный массив и получим его транспонированную версию с помощью атрибута T:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print("Original array:")
print(arr)
print("Transposed array:")
print(arr.T)
Результат выполнения кода:
"Original array:"
[[1 2 3]
[4 5 6]]
"Transposed array:"
[[1 4]
[2 5]
[3 6]]
Пример
Рассмотрим, как атрибут T работает с одномерными массивами:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print("Original array shape:", arr.shape)
print("Transposed array shape:", arr.T.shape)
print("Are they the same object?", arr is arr.T)
print("Original array:")
print(arr)
print("Transposed array:")
print(arr.T)
Результат выполнения кода:
"Original array shape:" (5,)
"Transposed array shape:" (5,)
"Are they the same object?" False
"Original array:"
[1 2 3 4 5]
"Transposed array:"
[1 2 3 4 5]
Пример
Применим атрибут T к трехмерному массиву, чтобы увидеть, как переставляются оси:
import numpy as np
arr = np.arange(24).reshape(2, 3, 4)
print("Original array shape:", arr.shape)
print("Transposed array shape:", arr.T.shape)
print("Original array:")
print(arr)
print("Transposed array:")
print(arr.T)
Результат выполнения кода:
"Original array shape:" (2, 3, 4)
"Transposed array shape:" (4, 3, 2)
"Original array:"
[[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]]
"Transposed array:"
[[[ 0 12]
[ 4 16]
[ 8 20]]
[[ 1 13]
[ 5 17]
[ 9 21]]
[[ 2 14]
[ 6 18]
[10 22]]
[[ 3 15]
[ 7 19]
[11 23]]]
Пример
Используем атрибут T в математических операциях, например, для вычисления матричного произведения:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print("Original array:")
print(arr)
print("Transposed array:")
print(arr.T)
product = np.dot(arr, arr.T)
print("Matrix product arr * arr.T:")
print(product)
Результат выполнения кода:
"Original array:"
[[1 2 3]
[4 5 6]]
"Transposed array:"
[[1 4]
[2 5]
[3 6]]
"Matrix product arr * arr.T:"
[[14 32]
[32 77]]