【发布时间】:2017-06-22 11:51:34
【问题描述】:
我正在使用多维矩阵(大约 100 维左右,见下文)。我的矩阵是 NumPy 数组,我主要将它们相乘。
NumPy 是否关心(关于速度或准确性)我要求它以什么形式将这些矩阵相乘? IE。在执行乘法之前将它们重塑为线性数组是否有意义?我用随机矩阵做了一些自己的测试,这似乎无关紧要,但想对此有一些理论见解。
我想在 Python 处理它们变得缓慢之前,矩阵的大小和它们的大小是有限制的。有没有办法找到这个限制?
我有几个物种(生物学)并想为这些物种中的每一个分配一个适应度。然后我想看看这些不同的技巧如何影响比赛的结果。我想检查所有物种的所有可能的适应度组合。我的矩阵有很多维度,但所有维度都很小。
【问题讨论】:
-
你的乘法是什么意思?
-
正规乘法
a*b。a和b的形状是否重要(只要它们具有相同的形状)? -
需要注意的是,NumPy 在编译的 C 或 C++ 代码中执行这些操作(甚至调用 Fortran 数值库(?)),所以它不会是“Python” 变慢或不变慢。 (不过,由于计算仍然发生在 Python 进程和线程中,当然,这仍然是您“感受”它的地方。)
-
注意 numpy 数组的硬编码限制为 32 维
标签: python arrays numpy vectorization