On Mon, Dec 8, 2008 at 11:27, frank wang <f.yw@hotmail.com> wrote:
Hi,
I want to create a matrix based on a vector. It is difficult to describe the issue for me in english. Here is an example.
Suppose I have an array([3, 6, 8, 12]), I want to create a range based on each element. In this exampe, let us say want to create 4 number with step 2, so I will have
[3, 6, 8, 12 5, 8, 10,14 7, 10,12,16 9, 12,14,18]
It is a 4 by 4 maxtric in this example. My original array is quite large. but the range I want to create around the number is not big, it is about 30.
Does anyone know how to do this efficiently?
In [1]: from numpy import * In [2]: a = array([3, 6, 8, 12]) In [4]: b = arange(0, 4*2, 2)[:,newaxis] In [5]: a+b Out[5]: array([[ 3, 6, 8, 12], [ 5, 8, 10, 14], [ 7, 10, 12, 16], [ 9, 12, 14, 18]]) -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco