我正在尝试合并两个2D numpy数组-using np.concatenate
。这是我的代码:
import numpy as np
arr = np.array([[]]) #empty 2D array for result
a = np.array([[0.0012, 0.032, 0.039, 0.324]])
b = np.array([[1, 0.2, 0.03039, 0.1324]])
arr = np.concatenate(arr, a, axis=0)
arr = np.concatenate(arr, b, axis=0)
print(arr)
我也尝试过:
np.concatenate(arr, a, axis=0)
np.concatenate(arr, b, axis=0)
或者:
arr = np.concatenate(a, b, axis=0)
但是它在arr = np.concatenate(arr, a, axis=0)
行中引发错误。错误:TypeError: only integer scalar arrays can be converted to a scalar index
任何可能的解决方案?
我想要这样的结果:arr = np.array([[0.0012, 0.032, 0.039, 0.324], [1, 0.2, 0.03039, 0.1324]])
答案 0 :(得分:0)
您可以使用hstack和vstack函数。请注意,vstack需要您的数组具有相等的x维度。
arr = np.hstack([arr, a])
arr = np.vstack([arr, b])
如果要使用concatenate函数,则应将数组列表作为第一个参数传递:
arr = np.concatenate([arr, b], axis=0)
此用法也必须具有相等的x维度。
您还可以使用block函数进行复杂的串联。
答案 1 :(得分:0)
如何?
import numpy as np
a = np.array([[0.0012, 0.032, 0.039, 0.324]])
b = np.array([[1, 0.2, 0.03039, 0.1324]])
result = np.concatenate([a, b], axis=0)
print (result)
给出:
[[ 0.0012 0.032 0.039 0.324 ]
[ 1. 0.2 0.03039 0.1324 ]]