Я читаю файл, используя numpy.genfromtxt, который содержит столбцы как строк, так и числовых значений. Одна вещь, которую мне нужно сделать, это определить длину ввода. Все это прекрасно, если в каждый массив считывается более одного значения.Как определить длину массива numpy только с одним элементом?
Но ... если в результирующем массиве есть только один элемент, логика терпит неудачу. Я могу воссоздать здесь пример:
import numpy as np
a = np.array(2.3)
LEN (а) возвращает ошибку, говоря:
TypeError: len() of unsized object
Однако, если есть 2 или более элементов, Len() ведет себя, как и следовало ожидать.
import numpy as np
a = np.array([2.3,3.6])
LEN (а) возвращает 2
Моей заботы здесь, если я использую какие-то странные обработки исключений, я не могу отличить порожняком и, имеющую длину = 1.
EDIT: @noskio предложил установить a = np.array ([2.3]). Проблема в том, что фактический генезис a осуществляется с помощью numpy.genfromtxt. Код выглядит следующим образом:
import numpy as np
indata = np.genfromtxt(some_filename, names=True,dtype=None)
a = indata['one_col_headername']
В результате, если входные данные, только одна строки в файле, а является 0-d массив.
'массив ([2])' представляет собой массив с одним элементом и 1 измерение , 'array (2)' - массив с нулевыми рангами или нулями. – endolith