Ну, ваш FFnetlayer0 - это не numpy array
, он все еще просто список питонов.Вы можете нарезать его
from numpy import array
FFnetlayer = [0,243, 9,243, 18,243]
first_array = array(FFnetlayer[0::2]) # array([0,9,18])
second_array = array(FFnetlayer[1::2]) # array([243,243,243])
Если это не матрица, я не вижу преимущества в том, чтобы сделать его двумерным, а не двумя отдельными массивами.
Вы также можете сжатьдва списка вместе, если вам не нужно было использовать их в numpy как:
list_of_tuples = zip(FFnetlayer0[0::2], FFnetlayer0[1::2]) # [(0,243), (9,243), (18,243)]
array_of_list_of_tuples = array(list_of_tuples) # array([[0,243],[9,243],[18,243]])
Подробнее о расширенных срезах (или шагах) см .: http://docs.python.org/release/2.3/whatsnew/section-slices.html
Подробнее о zipсм .: http://docs.python.org/library/functions.html#zip
Заметил в комментариях, что вы создали массив numpy с помощью append.Отмечено, что numpy.append не добавляется на месте, поэтому не является эффективным способом расширения длинных массивов.
Например,
ff_list = [(0,243), (9,243)]
orig_id = id(ff_list)
for i in range(1000):
ff_list.append((i,243))
assert(orig_id == id(ff_list)) # Assertion is always True
ff_array = numpy.array(ff_list) # This will copy the list into an array; but does this only once rather than N times.
, тогда как
ff_array = numpy.array([(0,243), (9,243)])
last_id = id(ff_array)
for i in range(1000):
ff_array = numpy.append(ff_array, (i,243))
assert(last_id != id(ff_array)) # Assertion is True as array is always different.
last_id = id(ff_array)
id
указывает место в памяти объекта Python.Обратите внимание, что это не может быть большой разницей, если ваши массивы большие и часто добавляются.Также, если это вообще возможно, лучше всего делать математику массива для создания больших массивов, а не поэлементно для циклов или добавления.