vectorization相关内容

加速对称矩阵的计算;使用外

我需要加快生成对称矩阵的计算.目前我有这样的事情: X 其中 myfun 是一个相当复杂的矢量化但对称的函数 (myfun(x, y) = myfun(y, x)). 所以我的代码不必要地浪费时间计算下三角矩阵和上三角矩阵. 如何在不使用慢速 for 循环的情况下避免重复? 解决方案 如果你的函数很慢并且时间随着输入的大小而变化,你可以使用combn: X 然而,最 ..
发布时间:2021-09-17 19:19:12 其他开发

如何提高 np.random.choice() 循环效率

我正在尝试将 np.random.choice 应用于具有不同权重的大数组,想知道有什么方法可以避免循环并提高性能?在这里 len(weights) 可能是数百万. weights = [[0.1, 0.5, 0.4],[0.2, 0.4, 0.4],...[0.3, 0.3, 0.4]]选择 = [1, 2, 3]ret = np.zeros((len(weights), 20))对于我在范围 ..
发布时间:2021-09-17 19:19:09 Python

计算两个一维数组的成对元素

这是我的问题: 假设我的两个数组是: 将 numpy 导入为 npfirst = np.array([“你好", “你好", “你好"])second = np.array([“hlo", “halo", “alle"]) 现在我想得到两个数组的每个元素之间的距离矩阵 例如我的距离函数是: def diff_len(string1, string2):返回 abs(len(str ..
发布时间:2021-09-17 19:19:04 Python

Python/Numpy:在二维数组中按行组合布尔掩码

我有一个包含 n 行的布尔掩码的 2D numpy 数组,其中每行是一个包含 m 个掩码的数组. maskArr = [[[真、假、真、假]、[真、真、假、真]、[真、真、假、真]]、[[假,真,假,真],[假,真,真,真],[真,真,假,真]],[[真、假、真、假]、[真、真、假、真]、[真、真、假、真]]、[[假,真,假,真],[假,真,真,真],[真,真,假,真]],[[真、假、真、假]、 ..
发布时间:2021-09-17 19:19:00 Python

矢量化:数组的索引太多

a=b=np.arange(9).reshape(3,3)i=np.arange(3)掩码=a 和 b[np.where(mask[0])]>>>数组([0, 1, 2])b[np.where(mask[1])]>>>数组([0, 1, 2, 3])b[np.where(mask[2])]>>>数组([0, 1, 2, 3, 4]) 现在我想对它进行矢量化并将它们全部打印出来,然后我尝试 ..
发布时间:2021-09-17 19:18:55 Python

pandas 行操作 - 如果找到 startwith 关键字 - 将行追加到前一行的末尾

我有一个关于文本文件处理的问题.我的文本文件打印为一列.该列的数据分散在各行中,视觉上看起来很棒&然而有些统一,仍然只有一列.最终,我想将找到关键字的行附加到前一行的末尾,直到数据是一个长行.然后我将使用 str.split() 根据需要将部分切割成列. 在 Excel(顶部下方的代码)中,我使用相同的文本文件并删除标题、左对齐并执行关键字搜索.找到后,Excel 有一个很好的功能,称为偏移 ..
发布时间:2021-09-17 19:18:52 Python

numpy:将 numpy 数组的每个元素与另一个数组的每个元素相加

我从 Matlab 开始学习 Python.在Matlab中,给定两个长度不一定相同的向量,如果一个是行向量,一个是列向量,就可以相加. v1 = [1 3 5 7]v2 = [2 4 6]'v1 + v2答案 =3 5 7 95 7 9 117 9 11 13 我试图在给定两个 numpy 数组的情况下在 python 中产生相同的行为.首先想到的是循环: 将 numpy 导入为 npv1 ..
发布时间:2021-09-17 19:18:49 Python

自定义numpy的向量化操作的效率问题

我有一个下面给出的python函数: def myfun(x):如果 x >0:返回 0别的:返回 np.exp(x) 其中 np 是 numpy 库.我想让函数在 numpy 中向量化,所以我使用: vec_myfun = np.vectorize(myfun) 我做了一个测试来评估效率.首先我生成一个包含 100 个随机数的向量: x = np.random.randn(100) ..
发布时间:2021-09-17 19:18:46 Python

一次为 numpy 数组的多个切片分配多个值

我有一个 numpy 数组,一个定义数组内范围的开始/结束索引列表,以及一个值列表,其中值的数量与范围的数量相同.在循环中执行此分配目前非常慢,因此我想以矢量化方式将值分配给数组中的相应范围.可以这样做吗? 这是一个具体的简化示例: a = np.zeros([10]) 这是定义 a 范围内的开始和结束索引列表,如下所示: starts = [0, 2, 4, 6]结束 = [ ..
发布时间:2021-09-17 19:18:43 Python

R:是否可以对这个双循环进行矢量化/加速?

这是一个高级别的一般性问题.有一些类似的例子,但有不同的、更简洁的例子.或许无法回答.conn 是一个矩阵. for (i in 2:dim(conn)[1]) {for (j in 2:dim(conn)[1]) {如果 ((conn[i, 1] == conn[1, j]) & conn[i, 1] != 0) {conn[i, j] 这直接来自 clusterCons 包中的 clu ..
发布时间:2021-09-17 19:18:40 其他开发

如何矢量化熊猫数据框中的比较?

我有一部分数据帧 df 像这样: |天然橡胶时间 |活动 ||----|------|-------||70 |8 |||70 |0 |||70 |0 |||74 |52 |||74 |12 |||74 |0 || 我想将事件分配到最后一列.第一个条目默认为 1. 如果时间[i] 7 那么事件[i]=事件[i-1]+1. 我如何有效地矢量化它?我想避免循环. 解决方案 在您的条件定 ..
发布时间:2021-09-17 19:18:36 Python

如何将自定义函数累积应用于 R 中的向量?以一种有效和惯用的方式?

我知道 R 中的函数 cumsum 计算其向量参数的累积和. 我需要“累积应用"的不是 sum 函数,而是泛型函数,在我的特定情况下,是 quantile 函数. 我当前的解决方案基于循环: set.seed(42)df 它创建了一个具有 nrow(df) 列和 2 行的矩阵,其中一行用于第 1 个百分位数,一行用于第 99 个百分位数. 您可以将此信息添加到您的数据框 df ..
发布时间:2021-09-17 19:18:34 其他开发

Python:将 3D 图像系列重塑为像素系列

我有一个形状为 (imageCount, width, height) 的 3D numpy 图像数组. 我的目标是将其转换为形状为 (pixelPosition, imageCount) 的 2D 像素系列数组. 现在这是我的解决方案: timeSeries= []对于范围(高度)中的 h:对于范围(宽度)中的 w:timeSeries.append(images[:,h,w]) ..
发布时间:2021-09-17 19:18:31 Python

R 在使用 case_when 时提供参数(R 向量化)

这是我之前提出的一个问题的后续问题(R 使用 case_when(R 向量化)在存在大量类别/类型时应用多个函数).不幸的是,我一直无法弄清楚问题所在.我想我可能已经缩小了问题的来源,想看看是否有比我更了解的人能帮我找出解决方案. 假设我有以下数据集: set.seed(100)City=c("City1","City2","City2","City1")业务 = c("B","A","A ..
发布时间:2021-09-17 19:18:23 其他开发

对 Pandas DataFrame 的矢量化更新?

我有一个数据框,我想用数组中的一些值更新一列.但是,该数组与数据帧的长度不同,但我有要更新的数据帧行的索引. 我可以通过行(如下)循环来做到这一点,但我希望有一种更有效的方法通过矢量化方法来做到这一点,但我似乎无法获得正确的语法. 在下面的示例中,我只是用 nan 填充列,然后直接通过循环使用索引. df['newcol'] = np.nanj = 0对于 update_idx 中的 ..
发布时间:2021-09-17 19:18:20 Python

向量化跨矩阵行的操作

我想对矩阵 X 上的 which 操作进行向量化(apply),如下面的 for 所示> 循环的结果是向量 ind: X = 矩阵( 1:20, 4, 5 )V = 样本( 1:20, 4 )ind = 数字()for( i in 1:nrow(X) ) ind[i] = max( c(0, which(X[i,] ..
发布时间:2021-09-17 19:18:17 其他开发

R:如何为 `rnorm` 的 `mean` 参数提供向量?

如何为 rnorm 的 mean 参数提供向量? around_int1_mean 我想做一些类似 rnorm(n=25, mean=around_int1_mean, sd=0.2) 的事情,避免 for 循环. 我想获得 length(around_int1_mean) 样本集,n=25 的平均值(在第一组中)为 1.5,然后是 1.6,依此类推,直到最后一组的平均值为 3.5.所 ..
发布时间:2021-09-17 19:18:14 其他开发