Merge two numpy arrays
For this case, hstack
(because second
is already 2D) and c_
(because it concatenates along the second axis) would also work. In fact c_
would work even if second
is shape (3,), as long as its length matches the length of first
.
Assuming first
and second
are already numpy array objects:
out = np.c_[first, second]
or
out1 = np.hstack((first, second))
Output:
assert (out == np.array(final)).all() & (out == out1).all()
That being said, all are just different ways of using np.concatenate
.
Use np.array
and then np.concatenate
,
import numpy as np
first = np.array([[650001.88, 300442.2, 18.73, 0.575,
650002.094, 300441.668, 18.775],
[650001.96, 300443.4, 18.7, 0.65,
650002.571, 300443.182, 18.745],
[650002.95, 300442.54, 18.82, 0.473,
650003.056, 300442.085, 18.745]])
second = np.array([[1],
[2],
[3]])
np.concatenate((first, second), axis=1)
Where axis=1
means that we want to concatenate horizontally.
That works for me
Use np.column_stack
:
import numpy as np
first = [[650001.88, 300442.2, 18.73, 0.575, 650002.094, 300441.668, 18.775],
[650001.96, 300443.4, 18.7, 0.65, 650002.571, 300443.182, 18.745],
[650002.95, 300442.54, 18.82, 0.473, 650003.056, 300442.085, 18.745]]
second = [[1],
[2],
[3]]
np.column_stack([first, second])
If you need it as a list, use the method tolist
:
np.column_stack([first, second]).tolist()