我对Python语言还很陌生,我正在尝试循环遍历栅格堆栈,并以时间序列的方式存储像素。
例如,假设我有三个日期为2020、2021、2022的三个栅格:
A = array([[[0.2, 0.3, 0.4, 0.5,
0.6, 0.7, 0.8, 0.9]],
[[1.0, 1.1, 1.2, 1.3,
1.4, 1.5, 1.6, 1.7]],
[[1.8, 1.9, 2.0, 2.1,
2.2, 2.3, 2.4, 2.5]]])
我想用数组创建一个新数组,数组的元素显示如下:
B = array([[0.2, 1.0, 1.8],
[0.3, 1.1, 1.9],
[0.4, 1.2, 2.0],
...
[0.9, 1.7, 2.5]])
即,[0.2, 1.0, 1.8]
由作为A
的第一阵列的第一元素的第一元素(0.2)形成,第二元素(1.0)是A
的第二阵列的第一元素,第三元素(1.8)是A
的第三阵列的第一元素。则对于下一个数组[0.3, 1.1, 1.9]
,第一个元素(0.3)是第一个数组A
的第二个元素。第二个元素(1.1)是第二个A
数组的第二个元素,依此类推。
有什么简单的方法可以做到这一点而不需要很多循环吗?要获取一些数据:
data = np.random.random((3, 4, 4))
stack = np.dstack(data) #just to change to (4,4,3), number of images for last
1条答案
按热度按时间jogvjijk1#
您可以使用下面的代码转置原始数组,我在转置后调整大小以消除额外的维度,但根据您的实际数据,您可能不需要/不想要它。