在python中,有一个93的矩阵,三列分别代表x、y、z,现在想把第一列和第二列作为坐标输出z,最后形成一个33的矩阵。请问有什么比较简单的方法吗?ps:x列,y列的的组合刚好是3*3矩阵中的位置。x=1 2 3 1 2 3 1 2 3 y= 1 1 1 2 2 2 3 3 3。请指教
引用 皆我百晓生 小程序回复内容作答:
要将x列和y列的取值组合成一个3x3矩阵,并将z列的值放在相应的位置,你可以使用NumPy库来进行操作。以下是一个使用NumPy的简单示例代码:
import numpy as np
x = np.array([1, 2, 3, 1, 2, 3, 1, 2, 3])
y = np.array([1, 1, 1, 2, 2, 2, 3, 3, 3])
z = np.array([10, 20, 30, 40, 50, 60, 70, 80, 90])
# 通过reshape方法将x、y、z的值组合成一个3x3矩阵
matrix = np.column_stack((x, y, z)).reshape(3, 3, 3)
print(matrix)
输出结果为:
[[[ 1 1 10]
[ 2 1 20]
[ 3 1 30]]
[[ 1 2 40]
[ 2 2 50]
[ 3 2 60]]
[[ 1 3 70]
[ 2 3 80]
[ 3 3 90]]]
在上述代码中,使用np.column_stack
函数将x、y、z的值按列组合成一个新的数组。然后,通过reshape
方法将新数组转换为3x3x3的矩阵形式。
这样,你就可以获得一个以x、y列组合作为坐标,z列作为对应值的3x3矩阵。