Исходя из фона Matlab/Octave, я пытался узнать numpy. Одна вещь, которая снова меня отключила, - это различие между векторами и многомерными массивами. По этому вопросу я дам конкретную проблему, которую я имею, но я был бы очень обязан, если бы кто-то мог объяснить более общую картину за одномерными массивами в numpy, почему вы хотели бы их в первую очередь, как во избежание проблем при смешивании одиночных и многомерных массивов и т.д. В любом случае вопрос:
У меня есть 2-D массив, называемый X:
X = numpy.arange(10).reshape(2,5)
и я хочу взять последний столбец X и сохранить его как еще один двухмерный массив (т.е. вектор-столбец), который называется Y. Единственный способ, с которым я смог справиться, это:
Y = numpy.atleast_2d(X[:,4]).T
но мне это не нравится по нескольким причинам:
-
Я не чувствую, что мне нужно было бы это передать транспонировать вектор, когда ориентация должна подразумеваться в X [:, 4].
-
Использование atleast_2D кажется слишком громоздким для использования снова и снова в коде, где эта ситуация может возникнуть много. Мне кажется, что я делаю что-то неправильно.
Итак, короче, есть ли лучший способ?
Спасибо.