这是numpy代码:
import numpy as np
arr1 = np.array([[0,1,np.nan],[3,np.nan,5],[np.nan,7,8]])
arr2 = np.array([[np.nan,6],[5,3],[2,np.nan]])
print(arr1)
print(arr2)
arr1 是: [[0.1.南] [ 3. 南 5.] [南 7. 8.]]
arr2 是: [[南 7. 6.] [ 5. 南 3.] [ 2. 1. nan]]
然后我做:
idx1 = np.isnan(arr1)
idx2 = np.isnan(arr2)
idx = idx1 | idx2
arr1[idx] = -1
arr2[idx] = -1
print(arr1)
print(arr2)
arr1 变为: [[-1。 1.-1.] [ 3. -1。 5.] [-1。 7. -1.]]
arr2 变为: [[-1。 7.-1。] [ 5. -1。 3.] [-1。 1. -1.]]
然后我想使用带有 ND4j 的 Scala 重写此代码:
import org.nd4j.linalg.factory.Nd4j
val arr1 = Nd4j.create(Array(Array(0,Double.NaN),Array(3,Double.NaN,5),Array(Double.NaN,8)))
val arr2 = Nd4j.create(Array(Array(Double.NaN,6),Array(5,3),Array(2,Double.NaN)))
println(arr1)
println(arr2)
val idx1 = arr1.isnaN
val idx2 = arr2.isnaN
val idx = idx1 | idx2 // error
arr1.putWhereWithMask(idx,-1)
arr2.putWhereWithMask(idx,-1)
println(arr1)
println(arr2)
此代码未编译。如何修改它?谢谢!