python - 数组 reshape 未正确映射到 numpy 网格

标签 python arrays numpy matrix

我有一个长的 121 元素数组,其中数据按升序存储,我想 reshape 为 11x11 矩阵,因此我使用 NumPy reshape 命令

Z = data.attributevalue[2,time,axial,:]
Z = np.reshape(Z, (int(math.sqrt(datacount)), int(math.sqrt(datacount)))) 

数据应面向笛卡尔平面,我使用以下内容创建网格

x = np.arange(1.75, 12.5, 1)
y = np.arange(1.75, 12.5, 1)
X,Y = np.meshgrid(x, y) 

问题是 Z 行的顺序错误,因此矩阵最后一行中的数据应该位于第一行,反之亦然。我想重新排列,以便以正确的方式填充行。起始数组 Z 按以下排列组合[数据点#1、数据点#2 ....、数据点#N]。数据点 #1 应位于左上角,最后一个点位于右下角。有没有一种简单的方法可以完成此操作,或者我是否必须创建一个函数来更改行的顺序?

我的情节陈述如下

surf = self.ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.jet,
    linewidth=1, antialiased=True)

***更新****

我尝试向后填充初始数组,但仍然没有成功。我将轴的方向更改为以下

y = np.arrange(12.5,1,-1)

这翻转了数据,但我的轴标签是错误的,所以它不是我的问题的真正解决方案。有什么想法吗?

最佳答案

您的原始数组可能看起来不像 1x121 数组。以下代码块显示了如何将数组从 1x121 reshape 为 11x11。

import numpy as np
A = np.arange(1,122)
print A
print A.reshape((11,11))

给予:

[  1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18 19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36 37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54 55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72 73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90 91  92  93  94  95  96  97  98  99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121]

[[  1   2   3   4   5   6   7   8   9  10  11]
 [ 12  13  14  15  16  17  18  19  20  21  22]
 [ 23  24  25  26  27  28  29  30  31  32  33]
 [ 34  35  36  37  38  39  40  41  42  43  44]
 [ 45  46  47  48  49  50  51  52  53  54  55]
 [ 56  57  58  59  60  61  62  63  64  65  66]
 [ 67  68  69  70  71  72  73  74  75  76  77]
 [ 78  79  80  81  82  83  84  85  86  87  88]
 [ 89  90  91  92  93  94  95  96  97  98  99]
 [100 101 102 103 104 105 106 107 108 109 110]
 [111 112 113 114 115 116 117 118 119 120 121]]

关于python - 数组 reshape 未正确映射到 numpy 网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27605946/

相关文章:

python - 用 PyQt5 绘制轮廓非常慢

python - 如何填充二维数组?

python - 在 django-rest-framework 中解析多部分/表单数据

python - 简单的 boost::python 程序崩溃

java - 这段代码告诉计算机做什么 Lights[k] = !lights[k];?

python - 重新排序 numpy 数组

JavaScript - 使用 es6 从对象数组中计算和删除重复项

python - 带有 numpy 数组的条件循环

python - Numpy linalg : linear system with unlikely results

python - 从上一行/值 python 添加值