首先,如果在其他地方已经回答了这个问题,我深表歉意。我能找到的只是关于替换给定值的元素的问题,而不是多个值的元素。
我有几千个大型 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) 我想使用以下卷积神经网络:
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 中将其绘制为图表
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) 假设我有一个这样的矩阵:
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 ×4
caffe ×1
csv ×1
grouping ×1
matplotlib ×1
matrix ×1
numpy ×1
performance ×1
python-3.x ×1