Как я могу создать 2D тензор с одним элементом синусом, а другим косинусоидальной волной?

#python #numpy #pytorch

#python #numpy #pytorch

Вопрос:

Я делаю

 train_data = np.array([np.sin(time), np.cos(time)])
  

Это дает мне что-то в форме (2, 4000) . Я думаю, мне это нужно (4000, 2) , чтобы для каждого временного шага я мог получить sin и cos.

Как я могу это сделать?

Комментарии:

1. Разве вы не можете просто перенести его? np.array(...).T

Ответ №1:

Вы можете использовать numpy transpose для переключения массива.

Попробуйте это:

 train_data = np.array([np.sin(time), np.cos(time)]).T
  

Вот что я сделал, чтобы получить (4000,2).

 import numpy as np
time = np.arange(4000)
train_data = np.array([np.sin(time), np.cos(time)])
print (train_data.shape)
print (train_data.T.shape)
  

Вывод для этого был:

 (2, 4000)
(4000, 2)
  

Комментарии:

1. Swtiching не имеет такого же эффекта транспонирования.

2. Интересно. Я думал, что это так.