从numpy掩码到pytorch掩码
一、numpy布爾索引掩碼
import numpy as npdata = np.arange(1, 11) mask=[True,False,True,False,True,False,True,False,True,False]print(data) print(data[mask])返回值為:
[ 1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 10]
[1 3 5 7 9]
二、numpy掩碼數(shù)組
掩碼數(shù)組通過numpy.ma來創(chuàng)建。
所謂掩碼,就是掩蓋的意思,后續(xù)掩碼數(shù)組的操作只有未被掩藏的元素會參與計算。
掩碼數(shù)組賦予了我們重新選擇元素的權(quán)利,而不用改變矩陣的維度。
示例一:
import numpy as np import numpy.ma as maa = np.arange(5) b = ma.masked_array(a, mask=[1,1,1,0,0]) print(a) print(b)返回值為:
[0 1 2 3 4]
[-- -- -- 3 4]
示例二:
import matplotlib.pyplot as pltdata = np.random.rand(25 * 25).reshape(25, -1) mask = np.tri(data.shape[0], k=-1) data_masked = ma.array(data, mask=mask)fig, (ax1, ax2) = plt.subplots(1, 2) ax1.imshow(data) ax2.imshow(data_masked) plt.show()返回為:
三、pytorch掩碼
pytorch使用tensor.masked_fill將張量中的一些值掩蓋掉。
方法原型:tensor.masked_fill(mask, value)
注意點:
?返回為:
torch.Size([3, 2, 4])
torch.Size([3, 2, 4])
tensor([[[1000000000, ? ? ? ? ?1, 1000000000, ? ? ? ? ?3],
? ? ? ? ?[ ? ? ? ? 4, 1000000000, 1000000000, 1000000000]],
? ? ? ? [[1000000000, ? ? ? ? ?9, 1000000000, ? ? ? ? 11],
? ? ? ? ?[ ? ? ? ?12, 1000000000, 1000000000, 1000000000]],
? ? ? ? [[1000000000, ? ? ? ? 17, 1000000000, ? ? ? ? 19],
? ? ? ? ?[ ? ? ? ?20, 1000000000, 1000000000, 1000000000]]])
總結(jié)
以上是生活随笔為你收集整理的从numpy掩码到pytorch掩码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无人机斜影(倾斜摄影)数据(OSGB)转
- 下一篇: ECMALL买家取消退款