#这里主要是指原数据不方便放在Dataframe的情况,如果在dataframe里面可以直接一列运算。
当希望对像素点的DN数据进行大量的换算时,我最开始一般都采用了if循环。特别是最近在学着处理一些DSPM-OLS的夜晚灯光图形,需要通过非衰变区域(0-62)推测衰变区域(63)的像素块的数据。
后来发现if循环真的特别耗时,虽然保证每次调用和填入的新值不会填错位置,但是效率非常低下。为了避免这种低效率代码,我后来发现可以考虑构造矩阵运算。可能对于科班出身的人来说,这是很容易想到的解决办法。
矩阵运算一般有两种:
(1) 行数和列数相同的矩阵,可以实现同位置元素的四则运算
import numpy as np
x = np.ones([4,5])
x
y = np.zeros([4,5])
y
x+y
结果如下:
(2)当前一个矩阵的列数等于后一个矩阵的行数,可以进行内积,需要使用np.dot()进行!
这里切记,内积不能够直接让矩阵相乘,而应该使用dot进行计算