in numpy/src/main/scala/com/spotify/featran/numpy/NumPy.scala [196:213]
def write[@specialized(Int, Long, Float, Double) T: NumPyType](
out: OutputStream,
data: Iterator[Array[T]],
numRows: Int,
numCols: Int
): Unit = {
val dims = Seq(numRows, numCols)
writeHeader[T](out, dims)
var n = 0
while (data.hasNext) {
val row = data.next()
require(row.length == numCols, s"Invalid row size, expected: $numCols, actual: ${row.length}")
writeData(out, row)
n += 1
}
require(n == numRows, s"Invalid number of rows, expected: $numRows, actual: $n")
out.flush()
}