小编war*_*ped的帖子

基于字典有效替换数组中的元素 - NumPy / Python

首先,如果在其他地方已经回答了这个问题,我深表歉意。我能找到的只是关于替换给定值的元素的问题,而不是多个值的元素。

背景

我有几千个大型 np.arrays,如下所示:

# generate dummy data
input_array = np.zeros((100,100))
input_array[0:10,0:10] = 1
input_array[20:56, 21:43] = 5
input_array[34:43, 70:89] = 8
Run Code Online (Sandbox Code Playgroud)

在这些数组中,我想根据字典替换值:

mapping = {1:2, 5:3, 8:6}
Run Code Online (Sandbox Code Playgroud)

方法

这时候,我使用了一个简单的循环,结合花哨的索引:

output_array = np.zeros_like(input_array)

for key in mapping:
    output_array[input_array==key] = mapping[key]
Run Code Online (Sandbox Code Playgroud)

问题

我的数组的维度为 2000 到 2000,字典有大约 1000 个条目,因此,这些循环需要永远。

是否有一个函数,它只需要一个数组和一个字典(或类似形式)形式的映射,并输出更改后的值?

非常感谢帮助!

更新:

解决方案:

我在 Ipython 中测试了各个解决方案,使用

%%timeit -r 10 -n 10

输入数据

import numpy as np
np.random.seed(123)

sources = range(100)
outs = [a for a in range(100)]
np.random.shuffle(outs)
mapping = {sources[a]:outs[a] …
Run Code Online (Sandbox Code Playgroud)

python performance numpy vectorization

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

Caffe for Windows中的未知图层类型(裁剪)

我想使用以下卷积神经网络:

http://lmb.informatik.uni-freiburg.de/people/ronneber/u-net/

https://github.com/BVLC/caffe/tree/windows构建的caffe

适用于带有Visual Studio 2013的Windows 10,CUDA 7.5,cudNN 4和python支持。

现在,当我呼叫附带的两个网络中的任何一个时

net = caffe.Net('xyz.prototxt', 'xyz.caffemodel', caffe.TEST)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

 Error parsing text-format caffe.NetParameter: 43:85: Unknown enumeration value of "CROP" for field "type".
Run Code Online (Sandbox Code Playgroud)

网络的第43行如下所示:

layers { bottom: 'd3c' bottom: 'u3a' top: 'd3cc'  name: 'crop_d3c-d3cc'  type: CROP }
Run Code Online (Sandbox Code Playgroud)

我在网上看过,有些人似乎遇到了相同的错误消息。但是,我找不到任何解决方案。

我现在的问题是:如何摆脱这个错误?

非常感谢您的帮助!

编辑:

按照Dale Song的建议更改.prototxt可以消除此错误,但又导致了另一个错误:

[libprotobuf ERROR ..\src\google\protobuf\text_format.cc:274] Error parsing text-format caffe.NetParameter: 10:102: Message type "caffe.LayerParameter" has no field named "blobs_lr".
Run Code Online (Sandbox Code Playgroud)

我通过替换来解决此问题

blobs_lr: 1 weight_decay: 1 blobs_lr: 2 weight_decay: 0
Run Code Online (Sandbox Code Playgroud)

 param …
Run Code Online (Sandbox Code Playgroud)

python caffe

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

如何在 python 中从 csv 绘制图表

我有以下代码,想知道如何在 python 中将其绘制为图表

year,month,sales,expenditure
2018,jan,6226,3808
2018,feb,1521,3373
2018,mar,1842,3965
2018,apr,2051,1098
2018,may,1728,3046
2018,jun,2138,2258
2018,jul,7479,2084
2018,aug,4434,2799
2018,sep,3615,1649
2018,oct,5472,1116
2018,nov,7224,1431
2018,dec,1812,3532
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止的代码

import matplotlib.pyplot as plt
import csv

x = []
y = []

with open('sales.csv','r') as sales_csv:
    plots = csv.reader(sales_csv, delimiter=',')
    for row in plots:
        x.append(row[1])
        y.append(row[3])

plt.plot(x,y, label='Loaded from file!')
plt.xlabel('x')
plt.ylabel('y')
plt.show()
Run Code Online (Sandbox Code Playgroud)

python csv matplotlib python-3.x

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

如何按相邻值分割矩阵?

假设我有一个这样的矩阵:

     m = [0, 1, 1, 0,
          1, 1, 0, 0,
          0, 0, 0, 1]
Run Code Online (Sandbox Code Playgroud)

我需要获得相同相邻值的坐标(但不是对角线):


像这样

因此,结果将是“矩阵”列表中的坐标列表列表,从 [0,0] 开始,如下所示:

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

一定有办法做到这一点,但我真的被困住了。

python grouping matrix image-segmentation

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