2016-04-26 2 views
-4

У меня есть следующий код:возвращает массив вместо кортежа из функции NumPy

return atleast_1d(0.4*P2), atleast_1d(k_uni) 

Моя функция возвращает кортеж. Каков самый быстрый способ сделать это возвращение в виде массива?

+1

Возможно, 'return array ((atleast_1d (0.4 * P2), atleast_1d (k_uni)))'? Btw. ваше название вопроса ничего не говорит о содержании вашего вопроса. – jDo

+0

Привет! Пожалуйста, уделите время, чтобы просмотреть свой вопрос и немного почистить его. Люди будут более охотно помогать, если это похоже на то, что вы на самом деле приложили определенные усилия для написания правильного вопроса :) Возможно, вам стоит начать с добавления вашего фактического вопроса в заголовок. – Alfro

+0

ОК. Я исправлю себя в следующий раз. –

ответ

0

Этот оператор возврата создает кортеж, состоящий из 2 массивов.

return atleast_1d(0.4*P2), atleast_1d(k_uni) 

Вы бы получить кортеж, если вы сделали

return 1, 2 
return [1,2,3],{'one':1} 
etc 

Я предложил бы вызвать функцию с

x, y = foo(...) 

Сейчас 2 массивов, определенные в обратном заявлении присваивается 2 переменных. Вы можете комбинировать их с тем, что работает (зависит от их формы).

np.array((x,y)) 
np.concatenate((x,y)) 
etc 

Обратите внимание, что я фактически передаю эти функции кортежу. Я мог бы написать это как список.

Проблема заключается не в том, как функция возвращает кортеж, а как вы хотите объединить 2 массива в один.

+0

Я думаю, вы меня неправильно поняли. Я просто хочу, чтобы одна строка кодирования в операторе return возвращала массив (hdstack из двух массивов) вместо кортежа. –

+0

Что случилось с 'return np.hstack ((array1, array2))'? Это ваш выбор, применяете ли вы «hstack» до или после возвращения. – hpaulj

+0

На самом деле ваша логика здесь работает. Спасибо :) . Теперь он решен. –

Смежные вопросы