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