Joining NumPy Arrays
Joining means putting contents of two or more arrays in a single array.
Nội dung chính
- Joining NumPy Arrays
- Joining Arrays Using Stack Functions
- Stacking Along Rows
- Stacking Along Columns
- Stacking Along Height [depth]
- Test Yourself With Exercises
- How do I combine two arrays?
- How do I merge two NumPy arrays in Python?
- Can we concatenate arrays in Python?
- How do I merge a list of NumPy arrays?
In SQL we join tables based on a key, whereas in NumPy we join arrays by axes.
We pass a sequence of arrays that we want to join to the
concatenate[]
function, along with the axis. If axis is not explicitly passed, it is taken as 0.
Example
Join two arrays
import numpy as np
arr1 = np.array[[1, 2, 3]]
arr2 = np.array[[4, 5, 6]]
arr = np.concatenate[[arr1, arr2]]
print[arr]
Try it Yourself »
Example
Join two 2-D arrays along rows [axis=1]:
import numpy as np
arr1 = np.array[[[1, 2], [3, 4]]]
arr2 = np.array[[[5, 6], [7, 8]]]
arr = np.concatenate[[arr1, arr2], axis=1]
print[arr]
Try it Yourself »
Joining Arrays Using Stack Functions
Stacking is same as concatenation, the only difference is that stacking is done along a new axis.
We can concatenate two 1-D arrays along the second axis which would result in putting them one over the other, ie. stacking.
We pass a sequence of arrays that we want to join to the stack[]
method along with the
axis. If axis is not explicitly passed it is taken as 0.
Example
import numpy as np
arr1 = np.array[[1, 2, 3]]
arr2 = np.array[[4, 5, 6]]
arr = np.stack[[arr1, arr2], axis=1]
print[arr]
Try it Yourself »
Stacking Along Rows
NumPy provides a helper function: hstack[]
to stack along rows.
Example
import numpy as np
arr1 = np.array[[1, 2, 3]]
arr2 = np.array[[4, 5, 6]]
arr = np.hstack[[arr1, arr2]]
print[arr]
Try it Yourself »
Stacking Along Columns
NumPy provides a helper function: vstack[]
to stack along columns.
Example
import numpy as np
arr1 = np.array[[1, 2, 3]]
arr2 = np.array[[4, 5, 6]]
arr = np.vstack[[arr1, arr2]]
print[arr]
Try it Yourself »
Stacking Along Height [depth]
NumPy provides a helper
function: dstack[]
to stack along height, which is the same as depth.
Example
import numpy as np
arr1 = np.array[[1, 2, 3]]
arr2 = np.array[[4, 5, 6]]
arr = np.dstack[[arr1, arr2]]
print[arr]
Try it Yourself »
Test Yourself With Exercises
Exercise:
Use a correct NumPy method to join two arrays into a single array.
arr1 = np.array[[1, 2, 3]] arr2 = np.array[[4, 5, 6]] arr = np.[[arr1, arr2]]
Start the Exercise
All the possible ways to join lists that I could find
import itertools
A = [1,3,5,7,9] + [2,4,6,8,10]
B = [1,3,5,7,9]
B.append[[2,4,6,8,10]]
C = [1,3,5,7,9]
C.extend[[2,4,6,8,10]]
D = list[zip[[1,3,5,7,9],[2,4,6,8,10]]]
E = [1,3,5,7,9]+[2,4,6,8,10]
F = list[set[[1,3,5,7,9] + [2,4,6,8,10]]]
G = []
for a in itertools.chain[[1,3,5,7,9], [2,4,6,8,10]]:
G.append[a]
print["A: " + str[A]]
print["B: " + str[B]]
print["C: " + str[C]]
print["D: " + str[D]]
print["E: " + str[E]]
print["F: " + str[F]]
print["G: " + str[G]]
Output
A: [1, 3, 5, 7, 9, 2, 4, 6, 8, 10]
B: [1, 3, 5, 7, 9, [2, 4, 6, 8, 10]]
C: [1, 3, 5, 7, 9, 2, 4, 6, 8, 10]
D: [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]
E: [1, 3, 5, 7, 9, 2, 4, 6, 8, 10]
F: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
G: [1, 3, 5, 7, 9, 2, 4, 6, 8, 10]
Join a sequence of arrays along an existing axis.
Parametersa1, a2, …sequence of array_likeThe arrays must have the same shape, except in the dimension corresponding to axis [the first, by default].
axisint, optionalThe axis along which the arrays will be joined. If axis is None, arrays are flattened before use. Default is 0.
outndarray, optionalIf provided, the destination to place the result. The shape must be correct, matching that of what concatenate would have returned if no out argument were specified.
dtypestr or dtypeIf provided, the destination array will have this dtype. Cannot be provided together with out.
New in version 1.20.0.
casting{‘no’, ‘equiv’, ‘safe’, ‘same_kind’, ‘unsafe’}, optionalControls what kind of data casting may occur. Defaults to ‘same_kind’.
New in version 1.20.0.
ReturnsresndarrayThe concatenated array.
See also
ma.concatenate
Concatenate function that preserves input masks.
array_split
Split an array into multiple sub-arrays of equal or near-equal size.
split
Split array into a list of multiple sub-arrays of equal size.
hsplit
Split array into multiple sub-arrays horizontally [column wise].
vsplit
Split array into multiple sub-arrays vertically [row wise].
dsplit
Split array into multiple sub-arrays along the 3rd axis [depth].
stack
Stack a sequence of arrays along a new axis.
block
Assemble arrays from blocks.
hstack
Stack arrays in sequence horizontally [column wise].
vstack
Stack arrays in sequence vertically [row wise].
dstack
Stack arrays in sequence depth wise [along third dimension].
column_stack
Stack 1-D arrays as columns into a 2-D array.
Notes
When one or more of the arrays to be concatenated is a MaskedArray, this function will return a MaskedArray object instead of an ndarray, but the input masks are not preserved. In cases where a MaskedArray is expected as input, use the ma.concatenate function from the masked array module instead.
Examples
>>> a = np.array[[[1, 2], [3, 4]]] >>> b = np.array[[[5, 6]]] >>> np.concatenate[[a, b], axis=0] array[[[1, 2], [3, 4], [5, 6]]] >>> np.concatenate[[a, b.T], axis=1] array[[[1, 2, 5], [3, 4, 6]]] >>> np.concatenate[[a, b], axis=None] array[[1, 2, 3, 4, 5, 6]]
This function will not preserve masking of MaskedArray inputs.
>>> a = np.ma.arange[3] >>> a[1] = np.ma.masked >>> b = np.arange[2, 5] >>> a masked_array[data=[0, --, 2], mask=[False, True, False], fill_value=999999] >>> b array[[2, 3, 4]] >>> np.concatenate[[a, b]] masked_array[data=[0, 1, 2, 2, 3, 4], mask=False, fill_value=999999] >>> np.ma.concatenate[[a, b]] masked_array[data=[0, --, 2, 2, 3, 4], mask=[False, True, False, False, False, False], fill_value=999999]
How do I combine two arrays?
To merge elements from one array to another, we must first iterate[loop] through all the array elements. In the loop, we will retrieve each element from an array and insert[using the array push[] method] to another array. Now, we can call the merge[] function and pass two arrays as the arguments for merging.
How do I merge two NumPy arrays in Python?
NumPy's concatenate function can be used to concatenate two arrays either row-wise or column-wise. Concatenate function can take two or more arrays of the same shape and by default it concatenates row-wise i.e. axis=0. The resulting array after row-wise concatenation is of the shape 6 x 3, i.e. 6 rows and 3 columns.
Can we concatenate arrays in Python?
Joining Arrays Using Stack Functions We can concatenate two 1-D arrays along the second axis which would result in putting them one over the other, ie. stacking. We pass a sequence of arrays that we want to join to the stack[] method along with the axis.
How do I merge a list of NumPy arrays?
To concatenate two arrays with NumPy:.
Import numpy..
Put two arrays in a list..
Call numpy. concatenate[] on the list of arrays..