I have two numpy arrays:
A = np.array([1, 3, 5, 7])
B = np.array([2, 4, 6, 8])
and I want to get the following from combining the two:
C = [1, 2, 3, 4, 5, 6, 7, 8]
I'm able to get something close by using zip
, but not quite what I'm looking for:
>>> zip(A, B)
[(1, 2), (3, 4), (5, 6), (7, 8)]
How do I combine the two numpy arrays element wise?
I did a quick test of 50,000 elements in each array (100,000 combined elements). Here are the results:
User Ma3x: Time of execution: 0.0343832323429 Valid Array?: True
User mishik: Time of execution: 0.0439064509613 Valid Array?: True
User Jaime: Time of execution: 0.02767023558 Valid Array?: True
Tested using Python 2.7, Windows 7 Enterprise 64-bit, Intel Core i7 2720QM @2.2 Ghz Sandy Bridge, 8 GB Mem
Use np.insert
:
>>> A = np.array([1, 3, 5, 7])
>>> B = np.array([2, 4, 6, 8])
>>> np.insert(B, np.arange(len(A)), A)
array([1, 2, 3, 4, 5, 6, 7, 8])
Some answers suggested sorting, but since you want to combine them element-wise sorting won't achieve the same result.
Here is one way to do it
C = []
for elem in zip(A, B):
C.extend(elem)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With