我的代码中的瓶颈是我计算成对距离矩阵的区域.由于这是迄今为止最慢的部分,我花了很多时间来加速我的代码.
我发现许多加速在线使用文章,但收益微乎其微.所以,我正在寻找一种方法来使用我的GPU创建距离矩阵,以进一步加快速度.但是,我对使用GPU进行计算知之甚少. 任何人都可以帮我这样做吗?
在我的研究中,我发现了以下内容,但没有一个使用GPU:
以下是如何计算成对距离矩阵的示例摘录:
import numpy as np
from scipy import spatial
rows = 1000
cols = 10
mat = np.random.randn(rows, cols)
d_mat = spatial.distance.cdist(mat, mat)
Run Code Online (Sandbox Code Playgroud)
我的显卡是Nvidia Quadro M2000M
我在Microsoft Access中有一个VBA脚本.VBA脚本是具有多个人的大型项目的一部分,因此无法离开VBA环境.
在我的脚本的一部分中,我需要快速地在桌面上进行复杂的线性代数.因此,我将编写为记录集的VBA表移动到Python中以执行线性代数,然后返回到VBA.python中的矩阵表示为numpy
数组.
一些线性代数是专有的,因此我们使用pyinstaller编译专有脚本.
该过程的细节如下:
input.csv
.input.csv
作为numpy
矩阵加载,对其执行线性代数,并创建输出csv文件output.csv
. output.csv
. input.csv
文件和output.csv
文件.这个过程效率低下.
有没有办法在没有csv混乱的情况下将VBA矩阵加载到Python(和后面)?这些方法是否可以通过pyinstaller使用已编译的python代码?
我在stackoverflow上找到了以下相关的示例.但是,它们没有具体解决我的问题.
在我的例子中,我正在编写代码来计算非常大的矩阵的经典多维缩放(缩写为MDS). n
n
n = 500,000
在MDS一步,我需要计算创3个特征值及其对应的特征向量的n
通过n
矩阵.该矩阵称为B
矩阵.我只需要这三个特征向量和特征值.计算大矩阵的特征向量和特征值的常用方法需要很长时间,而且我不需要非常准确的答案,因此我正在寻找特征向量和特征值的估计.
一些参数:
我的问题:是否有快速估算这种大B
矩阵的三个特征向量和特征值的方法?
我的进展:我找到了一种近似矩阵最高特征值的方法,但我不知道是否可以将其推广到最高的三个.我也发现这篇论文写于1996年,但它非常技术性,对我来说很难阅读.
我正在为生物医学成像课程设计一个项目(请注意:这是非编程课程,因此寻求编程帮助并不是作弊。寻求规划方面的概念帮助将是作弊。)使用不同的数学变换的图像。我正在用C编写程序,因此它可以尽可能快。我已经完成了数学转换的代码,但是我已经意识到我不知道如何将灰度.png文件转换为二维矩阵/数组以进行计算,而且我也不知道如何显示.png C档。有人可以帮我吗?
我正在尝试将“ image.png”图像转换为2d数组,其中数组中的每个条目的值都在0-255之间,并与“ image.png”中的每个像素相对应。我还想将一个二维数组(其中每个条目对应于图像中的一个像素,并将其值介于0-255之间)转换为新的“ image_two.png”文件。
我是一个有点新的程序员。我在python编程方面有扎实的基础,但是C对我来说是新的。我做了很多研究,发现很多人都在谈论使用“此库”或“该库”,或“此库”,但是我如何在C中使用下载的库?作为python程序员,这对我来说是陌生的领域:(
我正在使用Ubuntu 12.04
重申:
您如何在C中将灰度的.png图像读取为二维数组/矩阵?
您如何在C中将二维数组/矩阵显示为灰度图像?
您如何使用C代码下载下载的库(特别是针对上述两个问题)?我发现了如何使用这些库。
编辑:我仍然很难弄清楚如何从.png文件中创建一个灰度2d数组,以及如何从灰度2d矩阵中创建一个.png文件。有人可以帮忙吗?
我需要帮助解决我在 Ubuntu 13.04 上的 Octave 3.6.4 中遇到的问题。
我查找了多种方法来更改字体大小和/或图例、标题或绘图轴的字体;而且我发现我找到的代码不起作用。我尝试复制一些旨在更改文本或字体大小的代码片段,但无法更改它们。
Octave 输出图表时显示的字体是普通的定宽字体。
谁能帮我?我尝试过诸如...
xlabel('x-title', 'FontSize', 20)
Run Code Online (Sandbox Code Playgroud)
或者
xlabel('x-title', 'FontName', 'Vera')
Run Code Online (Sandbox Code Playgroud)
或者
foo = xlabel('x-title')
set(foo, 'FontSize', 20)
Run Code Online (Sandbox Code Playgroud)
或者
foo = xlabel('x-title)
set(foo, 'FontName', 'Vera')
Run Code Online (Sandbox Code Playgroud)
并且没有改变字体。
如何将一个sympy方程组转换为矩阵形式?
例如,如何转换这样的系统:
equation_one = 4*a*x + 3*b*y
equation_two = 2*b*x + 1*a*y
Run Code Online (Sandbox Code Playgroud)
进入这样的系统:
matrix_form = ([equation_one, equation_two], [x, y])
Run Code Online (Sandbox Code Playgroud)
这将返回:
[[4*a, 3*b],
[2*b, 1*a]]
Run Code Online (Sandbox Code Playgroud)
是否存在类似matrix_form()的函数?
我有一个foo
包含n
行和m
列的矩阵。例:
>>> import numpy as np
>>> foo = np.arange(6).reshape(3, 2) # n=3 and m=2 in our example
>>> print(foo)
array([[0, 1],
[2, 3],
[4, 5]])
Run Code Online (Sandbox Code Playgroud)
我有一个数组bar
与n
元素。例:
>>> bar = np.array([9, 8, 7])
Run Code Online (Sandbox Code Playgroud)
我有一个包含列索引ind
的长度列表n
。例:
>>> ind = np.array([0, 0, 1], dtype='i')
Run Code Online (Sandbox Code Playgroud)
我想使用列索引ind
来将值赋给bar
矩阵foo
。我想每行执行一次。假设执行此操作的函数称为assign_function
,我的输出将如下所示:
>>> assign_function(ind, bar, foo)
>>> print(foo)
array([[9, 1],
[8, 3],
[4, 7]])
Run Code Online (Sandbox Code Playgroud)
有pythonic的方法可以做到这一点吗?
我有两个二进制整数,x0
并且x1
是8位(这样它们跨越从0到255).关于这些数字,这句话总是如此:x0 & x1 == 0
.这是一个例子:
bx0 = 100 # represented as 01100100 in binary
bx1 = 129 # represented as 10000001 in binary
Run Code Online (Sandbox Code Playgroud)
所以我需要对这些数字进行以下操作.首先,将这些二进制表示解释为三元(基数为3)的数字,如下所示:
tx0 = ternary(bx0) # becomes 981 represented as 01100100 in ternary
tx1 = ternary(bx1) # becomes 2188 represented as 10000001 in ternary
Run Code Online (Sandbox Code Playgroud)
然后,1
将三元表示中的所有内容交换tx1
为2
:
tx1_swap = swap(tx1) # becomes 4376, represented as 20000002 in ternary
Run Code Online (Sandbox Code Playgroud)
然后使用它们的三元版本OR
来获得最终的组合数字:
result = ternary_or(tx0, tx1_swap) # …
Run Code Online (Sandbox Code Playgroud) Python中是否可以计算字符串中的术语?例如:
string_a = "4 ** (3 - 2)"
unknown_function(string_a) = 4
Run Code Online (Sandbox Code Playgroud)
这可能吗?在我的例子中是否有模仿"unknown_function"的函数?