使用numpy将范围设置为零

斩波器狮子4

我开始使用numpy食谱独立学习numpy。我查看并执行了以下代码:

import scipy.misc
import matplotlib.pyplot

#This script demonstates fancy indexing by setting values
#On the diagnols to 0

#Load lena array
lena = scipy.misc.lena()
xmax = lena.shape[0]
ymax = lena.shape[1]

#Fancy indexing
#can set ranges of points to zero, all at once instead of using loop
lena[range(xmax), range(ymax)] = 0
lena[range(xmax-1,-1,-1), range(ymax)] = 0
matplotlib.pyplot.imshow(lena)
matplotlib.pyplot.show()

我了解这段代码中的所有内容,但:

lena[range(xmax), range(ymax)] = 0
lena[range(xmax-1,-1,-1), range(ymax)] = 0

我阅读有关索引和切片的文档,但仍然无法理解上述代码。这是我的困惑点:

1)range(xmax)和range(ymax)包含整个x,y轴。不会将它们设置为零会使整个图像变黑吗?

2)range(xmax-1,-1,-1)是什么意思?

谢谢你们!

科尔卡洛尔

代码的第一位实际上是令人误解的,并且依赖于lena一个正方形图像的事实:发生的事情等同于调用zip(range(xmax), range(ymax)),然后将每个结果元组设置为0您可以在这里看到可能出问题的地方:如果xmax != ymax,那么事情将无法进行:

>>> test = lena[:,:-3]
>>> test.shape
(512, 509)
>>> xmax, ymax = test.shape
>>> test[range(xmax), range(ymax)] = 0
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: shape mismatch: objects cannot be broadcast to a single shape

定义diag_max = min(xmax, ymax)然后设置可能会更好lena[range(diag_max), range(diag_max)] = 0

您的第二个问题的答案更容易:range(from, to, step)是对的普遍呼吁range

>>> range(1, 10, 2)
[1, 3, 5, 7, 9]
>>> range(1, 10, -2)
[]
>>> range(10, 1, -2)
[10, 8, 6, 4, 2]
>>> range(10, 0, -1)
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

特别是,这会反转前一个列表,因此从右到左而不是从左到右抓住对角线。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

numpy:基于多个条件将值设置为零

来自分类Dev

将numpy数组中的列设置为零

来自分类Dev

Python / Numpy:将值设置为索引范围

来自分类Dev

Python / Numpy:将值设置为索引范围

来自分类Dev

如何将numpy中的值范围设置为nan?

来自分类Dev

如何将numpy中的值范围设置为nan?

来自分类Dev

将setActiveSelection设置为零

来自分类Dev

单击背景时范围设置为零

来自分类Dev

无法使用 CarrierWave 将文件字段设置为零

来自分类Dev

使用 xlUp 将适当的大小写设置为范围

来自分类Dev

将行[NumPy或Tensorflow]的索引值之前的行中的值设置为零

来自分类Dev

.toFixed()将值设置为零

来自分类Dev

将第i位设置为零?

来自分类Dev

将netlogo中的代码设置为零

来自分类Dev

将数组的元素设置为零

来自分类Dev

将信号的特定值设置为零

来自分类Dev

将范围设置为公式,然后设置为值

来自分类Dev

将数字范围设置为变量(JavaScript)

来自分类Dev

将高光设置为范围滑块

来自分类Dev

将命名范围设置为整数

来自分类Dev

如何将范围设置为变量?

来自分类Dev

将表格行设置为范围

来自分类Dev

NSDateFormatter使用某些国际设置将小时的格式设置为0-24以外的范围

来自分类Dev

我如何使用kill命令将退出状态设置为零

来自分类Dev

将本地动态数组的长度设置为零会减少内存使用吗?

来自分类Dev

如何最轻松地使用AlmofireImage将NSURLCache的内存容量设置为零?

来自分类Dev

在按钮上单击,我想使用JavaScript将文本字段的值设置为零

来自分类Dev

将本地动态数组的长度设置为零会减少内存使用吗?

来自分类Dev

如果行中的元素也为零,如何将整行设置为零?

Related 相关文章

热门标签

归档