我有一个价值
value = 0.04532
Run Code Online (Sandbox Code Playgroud)
另外,还有一本类似的字典
{'1': 0.02827, '2': 0.0, '3': 0.09827, '4': 0.04533}
Run Code Online (Sandbox Code Playgroud)
4在本例中,我只想返回字典中最接近原始值的值的键
我发现一个较旧的帖子做了类似的事情
newValue = value
answer = min(dict.items(), key=lambda (_, value): abs(value - newValue))
Run Code Online (Sandbox Code Playgroud)
这返回元组('4', 0.04533),我只想要键(作为 int)。此外,我无法理解该代码到底在做什么。
有没有更干净的方法来完成这项工作?
我需要将2个numpy.ndarrays作为参数并逐个像素地迭代它们,添加2个值并除以2.
基本上创建两者的混合图像并将其作为numpy.ndarray返回
这是我想出来的,但可以真正使用一些建议.
def blendImages(image1, image2):
it1 = np.nditer(image1)
it2 = np.nditer(image2)
for (x) in it1:
for (y) in it2:
newImage = (x + y) / 2
return newImage
Run Code Online (Sandbox Code Playgroud) 我正在使用 Pillow 加载 2 张图像(显然是黑白,但采用 RGB 格式)并转换为灰度。我不能使用opencv。
aImage = Image.open(imageA.visualFilename).convert("L")
bImage = Image.open(imageB.visualFilename).convert("L")
Run Code Online (Sandbox Code Playgroud)
我将它们转换为 numpy 数组。
aArray = np.array(aImage)
bArray = np.array(bImage)
Run Code Online (Sandbox Code Playgroud)
我最终想要做的是 (1) 计算每个数组中的所有黑色像素和 (2) 逐像素比较 aArray 与 bArray 并计算匹配黑色像素的数量。
目前让我感到困惑的是,当我打印其中一个数组时print aArray.shape,我不明白我在看什么。我正在使用np.set_printoptions(threshold='nan')打印完整数组,但它似乎是一系列元素,其值比我预期的要多。我认为每个元素将包含一个 255 或 0?
我这样做是为了使用黑白像素的正确方法吗?当我尝试转换为二进制“1”时,我得到了“真”/“假”结果,这让我更加困惑。
另外,假设 aArray 和 bArray 看起来相同,但实际上相差几个像素,那么将“模糊逻辑”合并到两个像素的像素比较中的最佳方法是什么?
仅用于补充信息,aImage.size然后aImage.mode返回
(184, 184)
L
Run Code Online (Sandbox Code Playgroud) 我需要读取包含源/目标IP和端口以及标记的文件.我正在使用Get-Content:
Get-Content $logFile -ReadCount 1 | % {
} | sort | get-unique | Out-File "C:\Log\logout.txt"
Run Code Online (Sandbox Code Playgroud)
这是输入文件的示例:
|10.0.0.99|345|195.168.4.82|58164|spam|
|10.0.0.99|345|195.168.4.82|58164|robot|
|10.0.0.99|231|195.168.4.82|58162|spam|
|195.168.4.82|58162|10.0.0.99|231|robot|
|10.0.0.99|345|195.168.4.82|58168|spam|
|10.0.0.99|345|195.168.4.82|58169|spam|
Run Code Online (Sandbox Code Playgroud)
我需要做的是输出一个新的列表,但如果相同的源/目标IP /端口都是'垃圾邮件'和'机器人',我只需要将该行输出为'机器人'(上面第1行和第2行).如果现有连接的反方向是"垃圾邮件"或"机器人",我需要做同样的事情,我只需要一个或另一个,它就是'机器人'(上面的第3和第4行).将有大量"垃圾邮件"行没有重复或反向连接(上面的最后几行),他们需要保持不变.
这是我一直用来创建连接的反向方向,但我还没弄清楚如何正确创建新列表:
$reverse = '|' + ($_.Split("|")[3,4,1,2,5] -join '|') + '|'
Run Code Online (Sandbox Code Playgroud)
上述产出将是:
|10.0.0.99|345|195.168.4.82|58164|robot|
|195.168.4.82|58162|10.0.0.99|231|robot|
|10.0.0.99|345|195.168.4.82|58168|spam|
|10.0.0.99|345|195.168.4.82|58169|spam|
Run Code Online (Sandbox Code Playgroud)
(除了第二行不必是相反的方向)
谢谢你的帮助!
我遇到的帖子演示了如何在列表中找到一个字符串并替换,但我很难将搜索概括为一个字符串.
例如
listX = ['color green', 'shape circle', 'above t']
Run Code Online (Sandbox Code Playgroud)
我想找到所有以'above'开头的字符串,我已经能够使用any并留下以下空间对列表进行一些最小的搜索,'above '但我无法弄清楚如何替换我找到的内容.
我正在尝试创建的输出将是:
['color green', 'shape circle', 'above']
Run Code Online (Sandbox Code Playgroud)
我还想弄清楚如何从列表中一起删除以'above'开头的字符串.