我收到了一个包含x和y值的一维十进制数数组。
我需要将给定的一维数组转置,就像它是一个矩阵一样。
我的当前代码可以实现这个功能,但并不完全符合我的要求:
to_transpose = [0.914, 0.639, 0.058, 0.760, 0.926, 0.475,
0.255, 0.671, 0.195, 0.966, 0.336, 0.841,
0.279, 0.341, 0.591, 0.638, 0.520, 0.225]
matrix_width = 6
matrix_height = 3
# INITIALIZE AN EMPTY LIST
transposed_list = [None] * matrix_width * matrix_height
for w in range(matrix_width):
for h in range(matrix_height):
transposed_list[w * matrix_height + h] = to_transpose[h * matrix_width + w]
这段代码可以正确地转置矩阵,但不符合我的要求格式。
由于这是一个x、y值的数组,所需输出如下:
correct_output=[0.914, 0.639, 0.255, 0.671, 0.279, 0.341,
0.058, 0.760, 0.195, 0.966, 0.591, 0.638,
0.926, 0.475, 0.336, 0.841, 0.520, 0.225]
在正确的输出中,转置时每个两位小数都被视为一个小数。
- 我想知道是否可以在不使用外部库的情况下通过一次矩阵遍历实现此功能,如上例所示?
- 我希望这适用于正方形和非正方形矩阵。
numpy
对此非常完美:np.array(to_transpose).reshape((6,3)).T.ravel()
。 - tobias_kreshape(3, 3, 2)
或(2, 3, 3)
。 - mkrieger1[(0.914, 0.639), (0.058, 0.760), ...]
,那么您的方法将起作用。 - mkrieger1