2014-09-18 2 views
1

У меня есть довольно большая матрица (500000 * 24) в качестве ndarray, и я хочу умножить ее ячейку с соответствующим столбцом min. Я сделал это с помощью циклов, но я продолжаю читать, что это не то, что нужно делать. Правильный способ выполнения такой операции (возможно, мне захочется впоследствии вычесть константу). Заранее спасибоУмножение умножения столбцов на нуль

ответ

2

Да, вы можете просто умножить свой массив на минимальный вектор непосредственно, пример показан ниже.

import numpy as np 

data = np.random.random((500000, 24)) 
# This returns an array of size 500,000 that is the row of 24 values 
minimum = data.min(axis=1) 

data = data * minimum 

Если вы хотите создать minimum массив размером 24 (где берется минимум 500000 значений), то вы выбрали бы axis=0.

В этом set of slides обсуждается, как такие операции могут работать.

+0

Спасибо за ответ. Это будет умножаться с минимумом всего массива, который я хочу умножить на столбцы min – tix3

+0

@ tix3 Я осознал свою ошибку и изменил код сейчас, работает ли это так, как вы намеревались? – Ffisegydd

1

Будет ли нормальное умножение не делать?

import numpy 
a = numpy.random.random((4,2)) 
b = a * numpy.min(a,axis=0) 
Смежные вопросы