[SciPy-User] matrix of vectors

Marco gaedol at gmail.com
Tue Dec 1 11:56:42 EST 2009


Thank you Neil!
I guess I'll go with the first option.

I wasn't aware of the chance to use these tricks on scipy.
Any pointers to this kind of tricks?

Thank you!

marco


On Tue, Dec 1, 2009 at 5:53 PM, Neil Martinsen-Burrell <nmb at wartburg.edu> wrote:
> On 2009-12-01 09:35 , Marco wrote:
>>
>> Hi all,
>>
>> I'd need to build a matrix (NxN) in which each element is a vector
>> with 3 components.
>
> One possible way to do this is to use a rich datatype like
>
>>>> N = 64
>>>> a = np.zeros((N,N), dtype=np.dtype("(3,)f8")
>>>> a[0,0]
> array([ 0.,  0.,  0.])
>
> which defines an NxN array whose elements are length 3 vectors of floats.
>  You can also just think of this as an NxNx3 array of floats where numpy's
> indexing rules let you index just the first two dimensions:
>
> In[8]: a = np.zeros((N,N,3))
>
> In [9]: a[1,1]
> Out[9]: array([ 0.,  0.,  0.])
>
> You should note that if you want to multiply these vectors by other matrices
> (such as rotations, etc.) then it is possible (but tricky) to use np.dot to
> do so.
>
> -Neil
>



More information about the SciPy-User mailing list