Tag: numpy

Преобразуйте numpy.ndarray в строку (или байты) и преобразуйте ее обратно в numpy.ndarray

У меня здесь небольшая проблема, Я пытаюсь преобразовать numpy.ndarray в строку, я уже сделал это вот так: randomArray.tostring() Это работает, но мне интересно, могу ли я преобразовать его обратно в numpy.ndarray. Каков наилучший способ сделать это? Я использую numpy 1.8.1 Контекст. Цель состоит в том, чтобы отправить numpy.ndarray как сообщение в rabbitmq (библиотека pika)

Подсчитать количество кластеров ненулевых значений в Python?

Мои данные выглядят примерно так: a=[0,0,0,0,0,0,10,15,16,12,11,9,10,0,0,0,0,0,6,9,3,7,5,4,0,0,0,0,0,0,4,3,9,7,1] По сути, есть куча нулей перед ненулевыми числами, и я рассчитываю подсчитать количество групп ненулевых чисел, разделенных нулями. В приведенных выше примерах есть 3 группы ненулевых данных, поэтому код должен возвращать 3. Число нулей между группами не-нулей является переменной Любые хорошие способы сделать это в python? (Также используя Pandas […]

Python – есть ли способ реализовать __getitem__ для многомерного массива?

Я хотел бы использовать что-то вроде этого: class Board(): … def __getitem__(self, y, x): return self.board[y][x] но, к несчастью, когда я звоню: board[x][y] Я получаю: TypeError: __getitem__() takes exactly 3 arguments (2 given)

Замените нули в целочисленном массиве NumPy с помощью nan

Я написал сценарий python ниже: import numpy as np arr = np.arange(6).reshape(2, 3) arr[arr==0]=['nan'] print arr Но я получил эту ошибку: Traceback (most recent call last): File "C:\Users\Desktop\test.py", line 4, in <module> arr[arr==0]=['nan'] ValueError: invalid literal for long() with base 10: 'nan' [Finished in 0.2s with exit code 1] Как заменить нули в массиве NumPy […]

Элегантный способ создания массива 2d со всеми возможными столбцами

В numpy я хотел бы сделать 2d-ордер (r, на 2 ** r), где столбцы – все возможные двоичные столбцы. Например, если высота столбцов равна 5, столбцы будут [0,0,0,0,0], [0,0,0,0,1], [0,0,0,1,0], [0,0,0,1,1], [0,0,1,0,0], … Мое решение np.array(list(itertools.product([0,1],repeat = c))).T Это кажется очень уродливым. Есть ли более элегантный способ?

Почему numpy.power медленнее для целых показателей?

Я выбрал эти числа случайным образом, но эти результаты кажутся согласованными – показатель поплавка на 25-50% быстрее, чем целочисленный. Как они обрабатываются по-разному? In [209]: %timeit -n 100000 -r 100 np.power(3.71242, 7) 100000 loops, best of 100: 3.45 µs per loop In [210]: %timeit -n 100000 -r 100 np.power(3.71242, 7.0) 100000 loops, best of 100: […]

Нужно ли numpy argsort возвращать массив из двух индексов?

Если у нас есть 1d-массив arr = np.random.randint(7, size=(5)) # [3 1 4 6 2] print np.argsort(arr) # [1 4 0 2 3] <= The indices in the sorted order Если у нас есть 2d-массив arr = np.random.randint(7, size=(3, 3)) # [[5 2 4] # [3 3 3] # [6 1 2]] print np.argsort(arr) # […]

NumPy суммирует один массив на основе значений в другом массиве для каждого соответствующего элемента в 3-м массиве

У меня есть два массива numpy, один из которых содержит значения и один, содержащий каждую категорию значений. values=np.array([1,2,3,4,5,6,7,8,9,10]) valcats=np.array([101,301,201,201,102,302,302,202,102,301]) У меня есть другой массив, содержащий уникальные категории, которые я хотел бы суммировать. categories=np.array([101,102,201,202,301,302]) Моя проблема в том, что я буду выполнять этот же процесс суммирования несколько миллиардов раз и каждый микросекунду. Моя текущая реализация такова. […]

Как я могу эффективно преобразовать массив numpy.int8 на место в массив numpy.uint8 с переменным значением?

У меня есть большой массив numpy с подписанными байтами ( dtype int8 ). Он содержит значения в диапазоне от -128 до +127. Я хотел бы эффективно преобразовать массив беззнаковых байтов ( dtype uint8 ), добавив 128 к каждому элементу, например -128 → 0, 0 → 128, +127 → 255 и т. Д., Поэтому, конечно, результаты […]

Обрезка многомерных массивов

Предположим, что я определил массив numx3x3 numpy с x = numpy.arange(27).reshape((3, 3, 3)) Теперь я могу получить массив, содержащий элемент (0,1) каждого подматрицы 3×3 с помощью x[:, 0, 1] , который возвращает array([ 1, 10, 19]) . Что делать, если у меня есть кортеж (m, n) и вы хотите получить элемент (m, n) каждого подмассива […]

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