On 2009-08-10 17:38, Nathan wrote:
Is there an easy way to merge two numpy arrays with different rank sizes (terminology?).
You will want to ask numpy questions on the numpy mailing list. http://www.scipy.org/Mailing_Lists I believe that "shape" is the term you are looking for.
I want to make a single array by concatenating two arrays along a given direction and filling the excess cells with a dummy variable. numpy concatenate works well as long as the two arrays have the same dimension, but I want to do this on two array with a matching dimension size. An example: import numpy as np a = np.array([[1,2,3],[4,5,6]]) b = np.array([[1,2],[3,4],[5,6]]) np.concatenate((a,a),axis=1) #This works fine, but isn't what I need. Out: array([[1, 2, 3, 1, 2, 3], [4, 5, 6, 4, 5, 6]]) np.concatenate((a,b),axis=1) #This doesn't work, but this is what I need. I want to fill the third row of array "a" with a dummy variable (99999 or NaN) and concatenate with "b" to make: [1,2,3,1,2] [4,5,6,4,5] [99999,99999,99999,5,6] This just seems like it would be relatively common. So I thought I'd check if I'm missing something before I go write the logic. Thanks!
I don't believe there is anything that does what you want out-of-box. You will probably want to determine the appropriate shape for the final array, use empty() to create it, use .fill(nan) (or whatever) to supply the default value, then assign the input arrays into the appropriate locations.
-- 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 -- http://mail.python.org/mailman/listinfo/python-list