python - 标量变量的索引无效(python)
问题描述
我正在尝试将每一行和每一列中的浮点数与用户输入(0-255)进行比较。如果输入在浮点数的标准差内;然后我将值设置为红色。(因此是 255,0,0)。我不明白这个错误是 通过矩阵迭代的
user_input = input("Lorum Ipsum : ")
avg_img = sum(images) / len(images)
std_dev = np.std(avg_img, dtype=np.float64)
for i in range(0, len(avg_img)): #i is row
for j in range(0, len(avg_img[i])): #j is column
if (std_dev[i][j] > (user_input)).any() :
avg_img[i][j] = [255.0, 0.0, 0.0]
解决方案
您观察到的错误与以下代码有关:
std_dev[i][j]
因为std_dev
是标量或单个数字,不支持索引。
可能,您想要使用axis
参数 ofnp.std()
并且也许您想要使用images
(or np.array(images)
) 作为它的输入。
还:
- 您可能更愿意使用
np.mean()
而不是sum() / len()
. 不知道是什么就很难说images
。 - 的结果
input()
是str
ing 并且很可能您不想将数字与字符串进行比较,而是想转换为 sayfloat()
orint()
。 - 请使用有意义的名称:
user_input
这是一个糟糕的选择,因为它描述的内容比它包含的更多。threshold
是一个更好的名字
推荐阅读
- reactjs - 对 Reactjs 中的输入进行自动验证的插件?
- android - 2D滚动,支持RTL布局
- html - 如何通过媒体查询固定圆形进度条位置?
- phaser-framework - 如何使用 moveToObject 移动容器 - Phaser 3
- django - Django - 检查是否点击了表单提交按钮?
- r - 如何通过特定前缀将多个数据框转换为列表
- openscenegraph - OSG 轮廓仅出现在几何图形的一侧
- c - 从c中的特定接口发送数据包
- r - 使用 POSIXct 为 left_join() 格式化两个不同的数据帧
- angular - Angular 7:core.js:12501 错误错误:未捕获(承诺):错误:无法匹配任何路由。网址段: