簡體   English   中英

ND4J 使用 boolean 索引和計算設置值

[英]ND4J set values using boolean indexing and computation

我想根據索引並使用計算在數組中設置值。 在 numpy 我會寫以下內容:

array[array < 0] = 2 * array[array < 0]

ND4J 也能實現這樣的效果嗎?

編輯:以及更復雜的語句/索引,例如:

array[array2 < 0] = 2 * array3[array2 < 0]

(假設array1、array2和array3的維度匹配)

條件分配是最接近的:

import org.nd4j.linalg.indexing.BooleanIndexing;
import org.nd4j.linalg.indexing.conditions.Conditions;


INDArray array1 = Nd4j.create(new double[] {1, 2, 3, 4, 5, 6, 7});
INDArray array2 = Nd4j.create(new double[] {7, 6, 5, 4, 3, 2, 1});
INDArray comp = Nd4j.create(new double[] {1, 2, 3, 4, 3, 2, 1});
BooleanIndexing.replaceWhere(array1, array2, Conditions.greaterThan(4));

你可以在那里使用很多條件和東西。 我建議使用第二個數組並在整個數組上應用您想要的算術並讓 BooleanIndexing 替換您想要從傳入的第二個數組中選擇元素的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM