julia - 创建一个掩码数组,其中“1”位于给定数组的最大值索引处
问题描述
给定一个矩阵A = [1 5 3; 4 2 6]
。如何创建一个新的掩码矩阵,其中1
值在列最大值索引处mask = [0 1 0; 1 0 1]
。如何在不改变任何创建的数组的情况下在 julia 中执行此操作。
有了突变,我正在按照以下方式进行操作。
maxval, maxind = findmax(A, dims=1)
mask = zeros(size(A))
mask[maxind] .= 1
解决方案
你所拥有的确实没有什么问题(尽管我可能会使用falses
而不是zeros
)。您也可以使用广播,但我希望它具有类似的性能:
julia> A = [1 5 3; 4 2 6]
2×3 Array{Int64,2}:
1 5 3
4 2 6
julia> A .== maximum(A, dims=1)
2×3 BitArray{2}:
0 1 0
1 0 1
(请注意,与 Python 不同,我们区分矩阵和向量的向量;您像后者一样编写它们)
推荐阅读
- php - PHP查询中的EncryptByPassphrase
- android - How can I parse array of arrays JSON with Retrofit?
- python - 通过cmd打开jupyter notebook
- swift - How to exclude certain devices from BLE search query?
- r - R:几个时间戳列合并到时间戳系列
- groovy - adding months to a date in groovy is not working
- autocad - 打印到 PDF:文本呈现不正确
- javascript - How to convert html to pdf in reactjs via frontend?
- elasticsearch - Kibana. Average number of events per hour per period by hour
- react-native - refetchQueries onComplete 回调