Jamie Cho
Jamie Cho

Reputation: 65

Numpy minimum like np.outer()

Maybe I'm just being lazy here, but let's say that I have two arrays, of length n and m, and I'd like a pairwise minimum of all of the elements of the two arrays compared against each other. For example:

a = [1,5,3]
b = [2,4]
cross_min(a,b)
= [[1,1],[2,4],[2,3]]

This is similar to the behavior of np.outer(), except that instead of multiplying the two arrays, it computes the minimum of the two elements.

Is there an operation in numpy that does a similar thing?

I know that I can just run np.minimum() along b and stack the results together. I'm wondering if this is a well-known operation that I just don't know the name of.

Upvotes: 3

Views: 704

Answers (2)

Eric
Eric

Reputation: 97661

You can use np.minimum.outer(a, b)

Upvotes: 6

akuiper
akuiper

Reputation: 215117

You might turn one of the array into a 2d array, and then make use of the broadcasting rule and np.minimum:

import numpy as np
a = np.array([1,5,3])
b = np.array([2,4])

np.minimum(a[:,None], b)
#array([[1, 1],
#       [2, 4],
#       [2, 3]])

Upvotes: 5

Related Questions