Python - 将多个相同维度的二维数组合并为一个二维数组

标签 python arrays python-3.x numpy opencv

我有 3 个尺寸相同的二维 numpy float 组(R、G、B)。我想将它合并到一个二维数组中,使新二维数组中的每个元素成为一个包含 3 个 float 的数组。下面是我的初始代码:

image = cv2.imread('hurricane katrina 1.jpg', cv2.IMREAD_GRAYSCALE)

a = 255
b = 2 * (np.pi/255)
c = np.pi / 5


R = a * np.absolute(np.sin(b * image))
G = a * np.absolute(np.sin(b * image + c))
B = a * np.absolute(np.sin(b * image + 2 * c))

如何在不遍历数组的情况下在 Python 中执行此操作?谢谢。

更新:

我想合并 3 个数组。举例来说

R[0][0] = 3 
G[0][0] = 4 
B[0][0] = 6

那么合并数组就是

RGB[0][0] = (3,4,6)

这对数组中的所有元素都是正确的。

所以最终的输出形状将是(1000,775,3)

最佳答案

np.concatenate((a, b,c), axis=看你想要什么,大概1)

或者 您还可以使用 hstack...(它们是一回事...)

执行 rgb_transform = np.concatenate(R,G,B) 会抛出错误。类型错误:只能将整数标量数组转换为标量索引, 但它不应该抛出,因为我已经在括号中传递了它们

要解决这个问题,可能 做这个 np.concatenate([a, b, c], axis=看你想要什么,大概1)

引用docs

编辑

问的和上面有点不同,所以正确的答案是 np.stack((r,g,b),2) 因为最终输出是 (1000,775,3)...

关于Python - 将多个相同维度的二维数组合并为一个二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49766704/

相关文章:

python - 如何在 Django 中调用远程结构方法

python - 使用中间件为django中的 View 函数添加参数

python - 与 BeautifulSoup 一起逃离……

javascript - 如何使用 forEach 将数组中的字符串转换为数字?

c++ - 无法用常量变量初始化数组...为什么?

python-3.x - 处理多个 Python 版本---不要独立运行

python - 包含初始化集的数据类?

python - 如何将 Python 3.5 设为我在 MacOS 上的默认版本?

python-3.x - python 3.x : Trying to compare current element with previous and next (without built-in functions)

javascript - 使用 jquery 从多个数组集中删除特定数组