要在磁盘上存储大矩阵,我使用numpy.memmap。
下面是测试大矩阵乘法的示例代码:
import numpy as np
import time
rows= 10000 # it can be large for example 1kk
cols= 1000
#create some data in memory
data = np.arange(rows*cols, dtype='float32')
data.resize((rows,cols))
#create file on disk
fp0 = np.memmap('C:/data_0',
我在MATLAB中使用元素乘法,其中最大的矩阵是120x50矩阵。在下面的代码中,weight_N_120{i,1}{j,1}是一个单元格,在这个单元格中,i第四个单元包含10000个其他单元。在这10000个细胞中,我有一个矩阵,这个矩阵由i表示,维数为120。ind_ExRet_N{i,1}{j,1}也是如此。
for i = 2:50
for j = 1:10000
weight_ExRet_NS{i,1}{j,1} = weight_N_120{i,1}{j,1}.*ind_ExRet_N{i,1}{j,1};
end
我正在写一个代码来使用KNN分析异常值,当我制作矩阵(70k X 70k)时,它对我的RAM (36 in )来说太大了,所以我用下面的代码将它们分成了7个10k x 10k元素的矩阵: matrices = []
for i in range(7):
matrices.append(np.zeros([10000, 10000]))
for matrix in matrices:
for i in range(10000 * matrices.index(matrix), 10000 * (matrices.index(matrix) + 1)):
for
我正在用pygame制作扫雷舰的复制品,我试图制作一个矩阵来跟踪炸弹,但我不理解我在网上看到的某个矩阵定义。 我在网上看到过这样的代码,用来定义一个完全用零填充的矩阵: def create_table(n):
return [[0] * n for i in range(n)] 其中n是矩阵中的行数和列数。 我不明白[0] * n是如何产生的,例如,如果n=3、[0, 0, 0].
我有一个数据集,它是一个巨大的、短的、胖的矩阵(大约4000 x 20,000,000)。我认为dask对我来说可能是一个很好的解决方案。但是,我希望确保可以将其编码为一个单热矩阵。我查看了dask-ml中的选项,它们似乎总是需要一个dask数据帧。然而,创建一个有2000万列的数据帧似乎真的很奇怪,而且可能会导致大量开销。使用dask数组并以某种方式使用apply on axis将每一列转换为1-hot会更容易吗?谢谢你的建议。
所以,我对MatLab非常陌生,我试着用[X Y Z] = cylinder;.Then制作一个圆柱--我得到了以下三个矩阵:X,Y和Z,如果我对它们进行mesh,就会生成一个实际的柱体。现在,我需要帮助的是旋转这个[X Y Z]圆筒90度顺时针在y轴。我知道有一个名为rotate的命令,但我的老师希望我显式地使用旋转矩阵和平移矩阵。我如何创建这些矩阵并将它们相乘到圆柱体上?有没有更好的方法来制作圆柱体?我真的不习惯matlab,如果你能用一种详细的形式来解释,我会非常感激。
我的问题是如何制作范德蒙德矩阵。定义如下:在线性代数中,以Alexandre-Théophile Vandermonde命名的Vandermonde矩阵是每行具有几何级数的项的矩阵,即m×n矩阵 我想做一个4*4的版本。 因此farI已经定义了值,但只有一行,如下所示 a=2
n=4
for a in range(n):
for i in range(n):
v.append(a**i)
v = np.array(v)
print(v) 我不知道如何扩展它。请帮帮我!