小编Nic*_*aiF的帖子

词典联盟python

我有两个字典,我想要联合,以便保留第一个字典中的每个值,并将第二个字典中的所有键:值对添加到新字典中.

dict1 = {'1': 1, '2': 1, '3': 1, '4': 1}
dict2 = {'1': 3, '5': 0, '6': 0, '7': 0}
Run Code Online (Sandbox Code Playgroud)

函数dictUnion(dict1,dict2)返回的位置

{'1': 1, '2': 1, '3': 1, '4': 1, '5': 0, '6': 0, '7': 0}
Run Code Online (Sandbox Code Playgroud)

我可以,并且通过使用简单的循环完成它,虽然在大字典上操作时这很慢.更快更"pythonic"的方式将不胜感激

python dictionary set

10
推荐指数
1
解决办法
1655
查看次数

柱/行切割火炬稀疏张量

我有一个pytorch稀疏张量,我需要切片行/列使用此切片[idx][:,idx],其中idx是索引列表,使用提到的切片在普通浮点张量上产生我想要的结果.是否可以在稀疏张量上应用相同的切片?这里的例子:

#constructing sparse matrix
i = np.array([[0,1,2,2],[0,1,2,1]])
v = np.ones(4)
i = torch.from_numpy(i.astype("int64"))
v = torch.from_numpy(v.astype("float32"))
test1 = torch.sparse.FloatTensor(i, v)

#constructing float tensor
test2 = np.array([[1,0,0],[0,1,0],[0,1,1]])
test2 = autograd.Variable(torch.cuda.FloatTensor(test2), requires_grad=False)

#slicing
idx = [1,2]
print(test2[idx][:,idx])
Run Code Online (Sandbox Code Playgroud)

输出:

Variable containing:
 1  0
 1  1
[torch.cuda.FloatTensor of size 2x2 (GPU 0)]
Run Code Online (Sandbox Code Playgroud)

我持有250.000 x 250.000邻接矩阵,我需要使用随机idx 对n行和n列进行切片,只需对n随机idx进行采样.由于数据集太大,转换为更方便的数据类型是不现实的.

我可以在test1上实现相同的切片结果吗?它甚至可能吗?如果没有,是否有任何解决方法?

现在我正在使用以下"hack"解决方案来运行我的模型:

idx = sorted(random.sample(range(0, np.shape(test1)[0]), 9000))
test1 = test1AsCsr[idx][:,idx].todense().astype("int32")
test1 = autograd.Variable(torch.cuda.FloatTensor(test1), requires_grad=False)
Run Code Online (Sandbox Code Playgroud)

test1AsCsr是我的test1转换为numpy CSR矩阵的地方.这个解决方案有效,但速度非常慢,并且使我的GPU利用率非常低,因为它需要不断地从CPU内存中读/写.

编辑:结果很好,非稀疏张量

python sparse-matrix slice pytorch

10
推荐指数
1
解决办法
2214
查看次数

已知库存的最优包装算法

医院正在改变他们对设备进行消毒的方式.此前,当地的外科医生保留了所有自己的设备并制作了自己的手术托盘.现在他们必须限制在全国范围内.他们想知道他们可以用现有库存制造多少新托盘,以及他们需要购买多少新设备.

医疗设备库存如下:

http://pastebin.com/rstWSurU

每家医院都有各种医疗设备的代码,然后是相应项目的数量

3个手术托盘及其相应的项目显示在这本词典中.

http://pastebin.com/bUAZhanK

共有144个不同的操作托盘

医院将被告知他们需要25个托盘x,30个托盘y等...

他们希望最大化他们可以用现有库存完成的托盘数量.他们还想知道他们需要购买哪些设备才能完成剩余的托盘.

我考虑过两种可能的解决方案,一种是将问题表示为线性规划问题.另一个解决问题的方法是通过循环蛮力解决问题的前90%,并通过多次随机算法解决剩余的10%,然后选择那些尝试的最佳解决方案.

我很想知道是否有人知道如何解决这个问题的聪明方法!

algorithm linear-programming dynamic-programming

8
推荐指数
1
解决办法
252
查看次数

删除numpy数组中的NaN

我有两个包含NaN的numpy数组:

A = np.array([np.nan,   2,   np.nan,   3,   4])
B = np.array([   1  ,   2,     3   ,   4,  np.nan])
Run Code Online (Sandbox Code Playgroud)

是否有任何聪明的方法使用numpy删除两个数组中的NaNs,并删除其他列表中相应索引的什么?看起来像这样:

A = array([  2,   3, ])
B = array([  2,   4, ])
Run Code Online (Sandbox Code Playgroud)

python arrays numpy nan

5
推荐指数
2
解决办法
2046
查看次数

使用 PyTorch 张量将对角线屏蔽为特定值

如何用 torch 中的值填充对角线?在 numpy 中你可以这样做:

a = np.zeros((3, 3), int)
np.fill_diagonal(a, 5)

array([[5, 0, 0],
       [0, 5, 0],
       [0, 0, 5]])
Run Code Online (Sandbox Code Playgroud)

我知道torch.diag()返回对角线,但如何使用它作为掩码来分配新值超出了我的范围。我无法在这里或 PyTorch 文档中找到答案。

python diagonal torch pytorch

5
推荐指数
1
解决办法
5276
查看次数

将scipy coo_matrix转换为pytorch稀疏张量

我有一个coo_matrix:

from scipy.sparse import coo_matrix
coo = coo_matrix((3, 4), dtype = "int8")
Run Code Online (Sandbox Code Playgroud)

我想要转换为pytorch稀疏张量.根据文档https://pytorch.org/docs/master/sparse.html它应该遵循coo格式,但我找不到一种简单的方法来进行转换.任何帮助将不胜感激!

python numpy scipy sparse-matrix pytorch

4
推荐指数
1
解决办法
2614
查看次数

使用python从音频中获取时间戳

我有许多音频文件,我想在语音开始和结束时自动添加时间戳。因此,话语开始时的“开始”时间戳。以及话语结束时的“停止”时间戳。

喜欢:

start,stop
0:00:02.40,0:00:11.18
0:00:18.68,0:00:19.77
...
Run Code Online (Sandbox Code Playgroud)

我测试了以下解决方案,它工作正常:使用静音检测分割音频文件问题是我只能从中获取块,这使得将时间戳与原始音频进行匹配有点困难

任何正确方向的解决方案或推动都将受到高度赞赏!

python audio pydub

4
推荐指数
1
解决办法
8317
查看次数

多评估者数据的评估者间可靠性计算

我有以下列表:

[[1, 1, 1, 1, 3, 0, 0, 1],
 [1, 1, 1, 1, 3, 0, 0, 1],
 [1, 1, 1, 1, 2, 0, 0, 1],
 [1, 1, 0, 2, 3, 1, 0, 1]]
Run Code Online (Sandbox Code Playgroud)

我想计算评估者间的可靠性分数,有多个评估者(行)。我不能使用 Fleiss 的 kappa,因为行的总和不等于相同的数字。在这种情况下,什么是好的方法?

python statistics statsmodels

3
推荐指数
1
解决办法
5979
查看次数

Numpy:在3个维度中使用np.mean

我有140个阵列,其尺寸为734 x 1468.我需要在734 x 1468条目中的140个阵列中的平均值,我开始通过嵌套for循环迭代数据,但它太慢了.我试过使用这个np.mean功能

res = np.mean([megadatalist[i].variables['analysed_sst'][0] for i in range(0,140)], axis=2)
Run Code Online (Sandbox Code Playgroud)

res.shape 给出(140,734)

我需要尺寸734,1468的结果

megadatalist 由140个netCDF文件组成.

python numpy mean dimensions netcdf

1
推荐指数
1
解决办法
1322
查看次数

Updating a tensor in tensorflow

I have defined an unsupervised problem in tensorflow, I need to update my B and my tfZ with every iteration, but I don't know how to update my tfZ using the tensorflow session.

tfY = tf.placeholder(shape=(15, 15), dtype=tf.float32)

with tf.variable_scope('test'):
    B = tf.Variable(tf.zeros([]))
    tfZ = tf.convert_to_tensor(Z, dtype=tf.float32)

def loss(tfY):
    r = tf.reduce_sum(tfZ*tfZ, 1)
    r = tf.reshape(r, [-1, 1])
    D = tf.sqrt(r - 2*tf.matmul(tfZ, tf.transpose(tfZ)) + tf.transpose(r) + 1e-9)
    return tf.reduce_sum(tfY*tf.log(tf.sigmoid(D+B))+(1-tfY)*tf.log(1-tf.sigmoid(D+B)))

LOSS = loss(Y)
GRADIENT = tf.gradients(LOSS, [B, tfZ])

sess = …
Run Code Online (Sandbox Code Playgroud)

python variable-assignment tensorflow tensorflow-gradient

1
推荐指数
1
解决办法
2347
查看次数

在单个边上连接两个networkx图

我需要一个带有N个簇的图,该图多少代表了社交网络的结构。我计划通过创建具有barabasi albert结构的N个图,然后通过单个节点将它们连接来解决此问题。

import networkx as nx

a = nx.barabasi_albert_graph(10,2)
b = nx.barabasi_albert_graph(10,2)

nx.draw(a)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

nx.draw(b)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我想要的是像这样连接它们:在此处输入图片说明 但是我看不到或没有找到任何简单的方法来做到这一点,是否有任何networkX功能可以做到这一点?

python graph networkx

1
推荐指数
1
解决办法
452
查看次数

在for循环中以jupyter播放音频

我需要注释大量的训练数据,为此,我需要听一堆声音片段并记下我听到的声音。为此,我在笔记本中编写了一个小脚本。

我的主要问题是IPython显示循环显示。举个例子:

import numpy
import IPython.display as ipd

sr = 22050# sample rate
T = 2.0# seconds
t = numpy.linspace(0, T, int(T*sr), endpoint=False)# time variable
x = 0.5*numpy.sin(2*numpy.pi*440*t)
ipd.Audio(x, rate=sr)
Run Code Online (Sandbox Code Playgroud)

会出现一个音频框,我将可以播放正弦波。

但是尝试在for循环中播放任何内容都不会产生任何结果(例如:)

for i in range(10000000):
    x = 0.5*numpy.sin(i*numpy.pi*440*t)
    ipd.Audio(x, rate=sr)
Run Code Online (Sandbox Code Playgroud)

如果有人有一个很好的解决方案来遍历(和收听)一堆音频文件(一次,一个,因为我需要遍历可能成千上万的声音片段),我将非常感激!

python audio ironpython jupyter-notebook

1
推荐指数
1
解决办法
586
查看次数