Как я могу создать один массив функций numpy из двух массивов и одно значение float?

Я пытаюсь создать файл данных тренировки, который структурирован следующим образом:

[Строки = Образцы, Столбцы = функции]

Поэтому, если у меня есть 100 образцов и 2 объекта, то форма моего np.array будет (100,2) и т. Д.

Данные

В приведенном ниже списке содержатся строки пути к файлам патчей-данных .nrrd 3D sample, которые были обработаны с использованием метода 01.

['/Users/FK/Documents/image/01/subject1F_200.nrrd', '/Users/FK/Documents/image/01/subject2F_201.nrrd'] 

Позволяет вызвать каталог dir_01. Для целей тестирования можно использовать следующий трехмерный патч. Он имеет ту же форму, что и файл .nrrd при чтении:

 subject1F_200_PP01 = np.random.rand(128,128, 128) subject1F_201_PP01 = np.random.rand(128,128, 128) # and so on... 

В приведенном ниже списке содержатся строки пути к файлам патча-данных 3D-образца .nrrd 3D, которые были обработаны с использованием метода 02.

 ['/Users/FK/Documents/image/02/subject1F_200.nrrd', '/Users/FK/Documents/image/02/subject2F_201.nrrd'] 

Позволяет вызвать каталог dir_02. Для целей тестирования можно использовать следующий трехмерный патч. Он имеет ту же форму, что и файл .nrrd при чтении:

 subject1F_200_PP02 = np.random.rand(128,128, 128) subject1F_201_PP02 = np.random.rand(128,128, 128) # and so on... 

Оба объекта одинаковы, но данные патчей предварительно обрабатываются по-разному.

Функции функций

Чтобы вычислить функции, мне нужно использовать следующие функции:

  1. np.median (регулярная функция python и возвращает одно значение)
  2. my_own_function1 (регулярная функция python и возвращает np.array)
  3. my_own_function2 (я могу получить доступ к нему только с помощью механизма matlab и возвращает np.array)

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

Вот мой код (кредиты М.Фабре)

Прочитайте патчи

 # Helps me read the files for features 1. and 2. Uses a python .nrrd reader def read_patches_multi1(files_1): for file_1 in files_1: yield nrrd.read(str(file_1)) # Helps me read the files for features 3. Uses a matlab .nrrd reader def read_patches_multi2(files_2): for file_2 in files_2: yield eng.nrrdread(str(file_2)) 

подсчитывать

 def parse_patch_multi(patch1, patch2): # Structure for python .nrrd reader data_1 , option = patch1 # Structure for matlab .nrrd reader data_2 = patch2 # Uses itertools to combine single float32 value with np.array values return [i for i in itertools.chain(np.median(data_1), my_own_function1(data_1), my_own_function2(data_2))] 

выполнение

 # Directories dir_01 = '/Users/FK/Documents/image/01/' dir_02 = '/Users/FK/Documents/image/02/' # Method 01 patch data file_dir_1 = Path(dir_01) files_1 = file_dir_1.glob('*.nrrd') patches_1 = read_patches_multi1(files_1) # Method 02 patch data file_dir_2 = Path(dir_02) files_2 = file_dir_2.glob('*.nrrd') patches_2 = read_patches_multi2(files_2) # I think the error lies here... training_file_multi = np.array([parse_patch_multi(patch1,patch2) for (patch1, patch2) in (patches_1, patches_2)], dtype=np.float32) 

Я пробовал несколько подходов, но я продолжаю получать синтаксическую ошибку или неправильную структуру. Или следующая ошибка типа:

 TypeError: unsupported Python data type: numpy.ndarray 

One Solution collect form web for “Как я могу создать один массив функций numpy из двух массивов и одно значение float?”

Я нашел решение, но оно не кажется слишком элегантным

Я создаю две функции:

 def parse_patch_multi1(patch1): # Structure for python .nrrd reader data_1 , option = patch1 # Uses itertools to combine single float32 value with np.array values return [i for i in itertools.chain(np.median(data_1), 0) my_own_function1(data_1)] def parse_patch_multi2(patch2): # Structure for python .nrrd reader data_2 = patch2 # Uses itertools to combine single float32 value with np.array values return [i for i in itertools.chain(my_own_function2(data_2)] 

выполнение

 # Directories dir_01 = '/Users/FK/Documents/image/01/' dir_02 = '/Users/FK/Documents/image/02/' # Method 01 patch data file_dir_1 = Path(dir_01) files_1 = file_dir_1.glob('*.nrrd') patches_1 = read_patches_multi1(files_1) # Method 02 patch data file_dir_2 = Path(dir_02) files_2 = file_dir_2.glob('*.nrrd') patches_2 = read_patches_multi2(files_2) training_file_multi1 = np.array([parse_patch_multi1(patch1) for (patch1) in patches_1], dtype=np.float32) training_file_multi2 = np.array([parse_patch_multi2(patch2) for (patch2) in patches_1], dtype=np.float32) 

Хитрость

объединить два np.arrays вдоль оси 1

 training_file_combined= np.concatenate((training_file_multi1, training_file_multi2), axis=1) 

Форма матрицы (2,252)

  • матрица смешения сюжета sklearn с метками
  • Сохранение частей конвейера
  • Создание порогового кода ROC в Python
  • Можно ли указать свою дистанционную функцию, используя scikit-learn K-Means Clustering?
  • Scikit Learn: Логистические коэффициенты модели регрессии: Уточнение
  • Слияние мешков слов scikits классификатор с произвольными числовыми полями
  • Как использовать warm_start
  • Регрессия с переменной Date с использованием Scikit-learn
  • Как использовать sklearn fit_transform с pandas и вернуть dataframe вместо numpy массива?
  • Размер выборки в случайной лесной регрессии
  • Ошибка с регрессией случайного леса Sklearn
  •  
    Interesting Posts for Van-Lav

    Каков самый быстрый способ добавить данные в список без дублирования в python (2.5)

    Сценарий для извлечения данных с веб-страницы

    Python if / elif синтаксическая ошибка … ПОЧЕМУ

    CSV-файлы с кодами и запятыми внутри полей

    Самый эффективный способ «зарезать» первую строку текста из текстового документа, а затем сохранить его в python

    Несколько цифр в одном окне

    Прокси-сервер SQLAlchemy с двунаправленной связью

    Объекты генератора Python: __sizeof __ ()

    ipython notebook –pylab inline: масштабирование сюжета

    Повторная выборка кадра данных pandas с многоиндексными таймингами

    Cython параллельный OpenMP для Black Scholes с интегрированным NumPy, серийный код 10M опций 3.5s, параллельный?

    Создание массива numpy настраиваемых объектов дает ошибку «SystemError: возврат ошибки без исключения»,

    Выполните электронное письмо с помощью imaplib, но не отмечайте его как SEEN

    Могу ли я использовать скомпилированные Python-файлы MinGW вместе с скомпилированными Visual C ++?

    __setattr__ против __slots__ для ограничения создания атрибутов в Python

    Python - лучший язык программирования в мире.