这个是出错的代码,给个解决方法:b43_ = (b4 - b3).astype(np.float32) b43__ = (b4 + b3).astype(np.float32) ndvi = np.divide(b43_, b43__,out = np.zeros_like(b43_),where = b43__!=0)
时间: 2024-01-10 14:02:09 浏览: 75
我写的代码,谁能帮我解决问题
3星 · 编辑精心推荐
这个错误是由于在将b43_和b43__相除时,结果的数据类型为float32,而out参数指定了结果的数据类型为与b43_相同的int16类型,导致了数据类型不匹配,因此会出现这个错误。解决方法可以是将out参数的数据类型改为float32,例如:
```
b43_ = (b4 - b3).astype(np.float32)
b43__ = (b4 + b3).astype(np.float32)
ndvi = np.divide(b43_, b43__, out=np.zeros_like(b43_, dtype=np.float32), where=b43__!=0)
```
这样就可以避免上述错误。
阅读全文