- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
Python初学者,跑2.7
我找不到用 Pythonic 编写以下公式的方法。我的目标是拥有一个可以输入值的函数(在之前的尝试中,我只找到了一个高度重复的暴力解决方案)。
必要信息:
如果您不知道 sigma 符号的含义:look here
# 'v' is the formula
# 'i' 'j' 'k' are actors with numerical attributes 'c' 's' and 'x'
# 'n' = length of the following lists (length is identical for all four lists)
values_1 = [Bob, Sue, Mary, Jo...] # i, j, and k are any 3 values drawn from this list
# under the condition that i != j != k
values_2 = [5,6,7,8...] # c is drawn from this list.
# if i = values_1[0], then c(i) = values_2[0].
# same for j and k
values_3 = [9,10,11,12...] # s is drawn from this list.
# if i = values_1[0], then s(i) = values_3[0]
values_4 = [13,14,15, 16..] # x is drawn from this list.
# if i = values_1[0], then x(i) = values_4[0].
def V (j,k):
#this is where I need help!
v_Bob_Sue = # this is where V(Bob, Sue) should go.
# this is what the math would look like in English:
# SUM of (c_Mary * s_Mary * ((abs(x_Mary - x_Sue) - abs(x_Mary - x_Bob)) / x's range))
# and (c_Jo * s_Jo * ((abs(x_Jo - x_Sue) - abs(x_Jo - x_Bob)) / x's range))
# Bob and Sue are the j and k value
# we do the formula with all the other actors (from values_1) who AREN'T Bob and Sue
v_Bob_Mary = # etc
v_Bob_Jo =
v_Sue_Bob =
v_Sue_Mary =
v_Sue_Jo =
v_Mary_Bob =
v_Mary_Sue =
v_Mary_Jo =
v_Jo_Bob =
v_Jo_Sue =
v_Jo_Mary =
最佳答案
至于“sigma”,计算起来很简单,因为它也被称为“sum”。在 python 中有一个内置函数:http://docs.python.org/library/functions.html#sum
至于您提供的公式,我认为您在这里真正想念的是列表或数组。 i、j 和 k 可以是 n 维数组的索引。我会为此使用 numpy 包:
import numpy as np
c = np.asarray(values_2)
s = np.asarray(values_3)
x = np.asarray(values_4)
def V(j, k):
return np.sum(c * s * (np.abs(x - x[j]) - np.abs(x - x[k])) / np.abs(x[-1] - x[0]))
此处 Bob 和 Sue 由 values_1 列表中的索引位置编码。这比使用字符串或类实例更容易。所以你会写:
v_Bob_Sue = V(0, 1)
如果你想自动创建变量 v_Bob_Sue 等你需要动态定义变量名。所以你需要 exec 语句如下:
for i in xrange(len(values_1)):
for j in xrange(len(values_1)):
exec("v_%s_%s = V(%u, %u)" % (values_1[i], values_1[j], i, j)
关于python - 编码西格玛公式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11830261/
如何更改图表的背景颜色。我需要黑色的。我认为任何人都可以从设置中找到,但我在 repo 中没有找到任何内容。如有任何帮助,我们将不胜感激。 谢谢 最佳答案 根据docs : To change the
我怎样才能得到 Ʃ 2^n 通过 Excel 单元格中的公式,当 N 是相邻单元格中的值时,n 从 1 到 N?我在这里查看了一些相关问题,尝试了一下,最终得到了这个,但它不起作用(生成#NAME?)
我在使用 Sigma.js 渲染有向图的箭头时遇到问题。 我的 GEXF 图: Gephi 0.8.1
我试图通过获取鼠标位置来单独拖动一个节点,因为它似乎被整个图形抓取行为所捕获。 所选节点的属性被正确修改,但其他节点一起移动,即使我设置了 n.x 和 n.y。 这是我的尝试: http://jsfi
我正在使用最新的 http://sigmajs.org/启用了 EdgeHover 的库。但是,我希望在单击边缘后更改红色边缘的颜色(直到单击另一个边缘): s.bind('clickEdge', f
我是一名优秀的程序员,十分优秀!