Scala 多维数组相当于 np.ndarray.shape?

标签 scala

在 Scala 中是否有一种简洁的方法来获取多维数组的形状?我正在考虑在 Python 中使用 Numpy 等效于以下内容:

import numpy as np
a = np.array([[1,2,3],[4,5,6]])
a
>> array([[1, 2, 3],
       [4, 5, 6]])
a.shape
>> (2, 3)

最佳答案

如果您确定所有内部数组的大小相同,您可以执行以下操作:

scala> val aaa = Array ( Array (1,2,3), Array (4,5,6))                        
aaa: Array[Array[Int]] = Array(Array(1, 2, 3), Array(4, 5, 6))

scala> val aaaShape = (aaa.size, aaa(0).size)
aaaShape: (Int, Int) = (2,3)

但是数组的数组不能保证所有内部数组的大小相同。

像 a.shape 这样的方法似乎过于工程化,但您可以轻松地自己编写它,然后在适当的情况下对每个子数组的大小进行检查。

关于Scala 多维数组相当于 np.ndarray.shape?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50573512/

相关文章:

scala - 为什么 word2vec 只在 Word2Vec.scala :323 处为 mapPartitionsWithIndex 执行一项任务

scala - 更改 Spark 中的日期格式会返回不正确的结果

scala - 编写一个类型类,选择依赖于上下文绑定(bind)

arrays - Project Euler 7 Scala 问题

scala - IntelliJ,Akka和配置文件

scala - sbt 安装没有设置 scala;无法运行scala文件

scala - 使用Hive或Spark Scala进行数据排列

java - 如何从 html 的下拉菜单中读取元素?

scala - 两个 RDD 的元素并集

scala - 在 Scala 中管理灵活的、类型化的、不可变的数据结构的正确方法是什么?