- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我编写了一个简短的程序来从数据库中提取关联规则。但是,现在我想比较提取的规则并计算每个规则的相交属性的数量。规则条件用 bool 型 numpy 数组表示,其中每一行都可以视为一个关联规则的前因。 bool 数组的列代表属性,这些属性可能出现在规则的前件中。 (“真”表示该属性存在于规则中)。
示例输入数组:
encoded_rules = np.array([[True,True,False,False,True],
[False,False,True,False,False],
[True,True,False,True,True],
[False,True,False,False,False]])
所需的输出数组:
[[3 0 3 1]
[0 1 0 0]
[3 0 4 1]
[1 0 1 1]]
正如您所看到的,索引 0 处的规则有 3 个属性,与索引 2 处的规则(有 4 个属性)相交的属性数为 3。为了实现这个目标,我尝试了多种方法,但我无法弄清楚如何以有效的矢量化方式做到这一点。我当前的解决方案是一个 for 循环,我在其中使用下限和上限逐步创建输出数组。通过计算属性出现的次数来计算下限和上限。:
encoded_rules = np.array([[True,True,False,False,True],
[False,False,True,False,False],
[True,True,False,True,True],
[False,True,False,False,False]])
rule_count = encoded_rules.shape[0]
rules, attributes = encoded_rules.nonzero()
#empty output array, which gets filled in the for-loop:
rule_mat = np.zeros((rule_count, rule_count), dtype="int")
sort_inds = attributes.argsort()
rules, attributes = rules[sort_inds], attributes[sort_inds]
unique_attributes, counts = np.unique(attributes, return_counts=True)
lower_bound = 0
upper_bound = 0
for attribute in unique_attributes:
upper_bound += counts[attribute]
intersecting_rules = rules[lower_bound:upper_bound]
rule_mat[intersecting_rules[:,None], intersecting_rules] +=1
lower_bound += counts[attribute]
print(rule_mat)
我正在处理一个相当大的数组(包含编码规则的数组的维度为 ~ 18.000 行 x 42 列,平均每行有 5-6 列,其值计算为“真”)所以在我的系统上过程大约需要 4 秒钟。 (每次迭代几乎 0.1 秒)。根据数据,阵列甚至可以变得更大。
encoded_rules = np.array([[True,True,False,False,True],
[False,False,True,False,False],
[True,True,False,True,True],
[False,True,False,False,False]])
rule_count = encoded_rules.shape[0]
encoded_rules_3d = np.stack([encoded_rules]*rule_count, axis=0)
rule_mat = encoded_rules_3d & encoded_rules[:,None]
rule_mat = rule_mat.sum(axis=2)
print(rule_mat)
有人知道加速矢量化计算吗?
最佳答案
您可以使用简单的线性代数来实现这一点。
想象一下,每个 True
是 1
和每个 False
是 0
所以乘以这个整数矩阵 a
通过其转置 a.T
会给你你想要的。
当然,numpy 是矢量化的。
import numpy as np
a = np.array([[True, True, False, False, True],
[False, False, True, False, False],
[True, True, False, True, True],
[False, True, False, False, False]])
a_int = a.astype(int)
print(a_int @ a_int.T)
[[3 0 3 1]
[0 1 0 0]
[3 0 4 1]
[1 0 1 1]]
关于python - 从 bool numpy数组计算每行与其他行的相交列数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65499407/
您如何计算Oracle表中的列数? 最佳答案 SELECT count(*) FROM user_tab_columns WHERE table_name = 'FOO' 应该给你foo中的列数。您可
我有一个宽度为 100% 的 div,里面有大约 10 张图片,所有图片的宽度和大小都不同。我希望能够无缝地将这些图像彼此 float ,我已经做到了,但它们不会在屏幕上拉伸(stretch),它们都
请看下面的代码,表格应该根据下面selected id选项中选择的输入更改行数,但只读取select id的第一个值,行数不会根据选择,你能指出我代码中的错误吗? http://jsfiddle.ne
我需要一个可以在 3×3 和 4×4 之间切换的动态 gridlayout。我可以 setRowCount 和 setColumnCount 从 3 到4 但不是从 4 到 3。它会显示以下问题: C
这里有一个没有真正答案的类似问题:CSS columns bug — 5 column count only showing 4 (with images) 我正在使用 column-count 来显
我正在尝试找到一种方法来填充摊销时间表,如下所示。 我目前使用的公式是: =IF($B2=$1:$1,$A2/$C2," ") 但是,这仅填充了第一个点(“起点”),我想做的是根据摊销期抵消这一点。期
我运行以下代码: import cv2 import numpy as np img_file='pokemon.jpg' img=cv2.imread(img_file) # print tota
我正在使用 asp.net 和 vb。这里我将数据绑定(bind)到Gridview。该数据集有 5 条记录,3 列,并且 gridview 显示 5 条记录,3 列。但 Gridview.colum
我已经为我的数据库苦苦挣扎了一段时间,几乎不可能找到我的老师。我的代码如下: INSERT INTO `database28`.`activity` VALUES ("Stefan", 1.1.2.2
我有一个执行 SQL 命令的 python 脚本,并尝试将所有数据插入表中。问题是我有一个条目列表,例如: "Bob", "bob@gmail.com" "John", "john@gmail.com
有谁知道这是否可以通过 bootstrap mixins 来完成。 列(父级数) 像什么Neat有。 在 Neat the Columns 中,mixins 的工作方式如下 @mixin span-c
我有这样的网址:http://xn----7sbabhi8cwaajmue5o.xn--p1ai/cars/search/by_man_and_model?by_manufacturer=115 你可
使用 Bootstrap 3,我正在寻找一种网格布局,其中列宽在任何屏幕分辨率下都是固定的(比如 200 像素),但它们的数量取决于屏幕宽度。 换句话说,我知道列的宽度,但我不知道每行有多少列,因为这
public class SmallestColumn2{ public static void main(String[] args){ int [][] smallest
如果我只有 9 列,但我想将它们分散到 100% 的 div。如何做到这一点? NSW VIC QLD WA SA TAS ACT N
我想在这里更改列的顺序: #container { position: relative; width: 600px; } #column-wrapper { -webkit-
1、df=DataFrame([{‘A':'11','B':'12'},{‘A':'111','B':'121'},{‘A':'1111','B':'1211'}])
我想将csv文件形式的数据导入表中。[使用Oracle SQL Developer]。我有数百个文件,每个文件有大约50列。 从SQL * Loader Wiki(http://www.orafaq.
好吧,这对我来说似乎很基础,尽管我找不到任何关于如何实现它的信息。 假设我有某种 QGridLayout 包含相同大小的小部件。现在我想根据布局大小更新其行数/列数。 因此,例如在相对较宽的屏幕上它看
我在 https://cwiki.apache.org/confluence/display/Hive/Home 中找不到任何记录在案的限制。 我的猜测是行数或列数没有限制。文件大小受文件系统限制。通
我是一名优秀的程序员,十分优秀!