Hướng dẫn join two array python

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]
numpy.concatenate[[a1, a2, ...], axis=0, out=None, dtype=None, casting="same_kind"]#

Join a sequence of arrays along an existing axis.

Parametersa1, a2, …sequence of array_like

The arrays must have the same shape, except in the dimension corresponding to axis [the first, by default].

axisint, optional

The axis along which the arrays will be joined. If axis is None, arrays are flattened before use. Default is 0.

outndarray, optional

If 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 dtype

If 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’}, optional

Controls what kind of data casting may occur. Defaults to ‘same_kind’.

New in version 1.20.0.

Returnsresndarray

The 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..

Chủ Đề