python - 如何规范化 1 到 10 之间的数组?
问题描述
我有一个带有以下整数的 numpy 数组:
[10 30 16 18 24 18 30 30 21 7 15 14 24 27 14 16 30 12 18]
我想将它们标准化为 1 到 10 之间的范围。
我知道标准化数组的一般公式是:
但是我应该如何在 1 到 10 之间缩放它们呢?
问题:将此数组标准化为 1 到 10 之间的值的最简单/最快的方法是什么?
解决方案
您的范围实际上是 9 长:从 1 到 10。如果将归一化数组乘以 9,则得到从 0 到 9 的值,您需要将其移回 1:
start = 1
end = 10
width = end - start
res = (arr - arr.min())/(arr.max() - arr.min()) * width + start
请注意,这里的分母有一个名为 numpy 的内置函数arr.ptp()
:
res = (arr - arr.min())/arr.ptp() * width + start
推荐阅读
- python - 如何在数据透视后对python中数据框中的索引列以外的列进行排序
- django - 在没有视图的情况下使用 django hitcount 模块
- graphql - 具有关系查询和参考字段的内容丰富的 GraphQL 过滤器
- openssl - OpenSSL 和 Certbot 有什么区别?
- javascript - 赛普拉斯 - 断言是否在数组中重复
- powershell - 应对计算机的 AD 成员组 - Poweshell
- javascript - 如何编写此代码以发送此表单中最后一个选定值的数据
- google-analytics - Google Analytics Universal Analytics - 查看所有页面(网站内容页面)时的日期范围问题
- flutter - BLE多连接
- javascript - 检索以字符串开头的数组项的有效方法