Numpy 的 digitize(~)
方法返回一个 Numpy 数组,其中包含输入数组中的值所属的 bin 的索引。用简单的语言来解释是很困难的,所以请看例子来澄清。
参数
1. a
| array-like
值数组。
2. bins
| array-like
bin 数组,必须是一维并按升序排序。
3. right
| boolean
| optional
如果为 True,则值将被放置在端点的下一个 bin 中。如果为 False,则值将放置在前一个 bin 中。默认情况下,right=False
。
返回值
整数索引的 Numpy 数组。
例子
基本用法
考虑以下代码片段:
# Our array of values
a = [3, 6.5, 9]
# Our bins
bins = [5, 6, 7, 8]
np.digitize(a, bins)
array([0, 2, 4])
让我们理解这里的输出。
-
第一个值 3 介于 3 <= 5(第一个 bin)之间,因此返回的整数索引为 0。
-
第二个值 6.5 介于 6 和 7 之间(第 2 个和第 3 个 bin),因此返回的整数索引为 2。
-
第三个值 9 大于 8(第 4 个 bin),因此返回的整数索引为 4。
解决这个问题的一个好方法是考虑该值的索引(如果要将其插入到 bin 数组中)。例如,值 3 将被插入到索引 0 中,因此返回 0。 6.5 将插入到索引 2 中,因此返回 2,依此类推。
处理端点
默认情况下,当检查将值放入哪个 bin 时,Numpy 将使用 < 比较。例如,
a = [5]
bins = [5, 6]
np.digitize(a, bins) # or right=False
array([1])
我们得到整数索引 1 的原因是我们执行的第一次比较是 5 < 5,其计算结果为 False
。
我们可以执行 <= 比较,而不是 < 比较,如下所示:
a = [5]
bins = [5, 6]
np.digitize(a, bins, right=True)
array([0])
在这里,我们得到整数索引 0,因为第一个比较 5 <=5 的计算结果为 True
。
相关用法
- Python distributed.protocol.serialize.register_generic用法及代码示例
- Python distributed.get_task_metadata用法及代码示例
- Python distributed.Client.gather用法及代码示例
- Python distributed.recreate_tasks.ReplayTaskClient.recreate_task_locally用法及代码示例
- Python distributed.diagnostics.plugin.SchedulerPlugin用法及代码示例
- Python distributed.Client.ncores用法及代码示例
- Python distributed.Client.retire_workers用法及代码示例
- Python distributed.Client.unregister_worker_plugin用法及代码示例
- Python distributed.fire_and_forget用法及代码示例
- Python dir用法及代码示例
- Python distributed.Client.set_metadata用法及代码示例
- Python dictionary cmp()用法及代码示例
- Python distributed.Client.scheduler_info用法及代码示例
- Python distributed.Client.submit用法及代码示例
- Python distributed.Client.compute用法及代码示例
- Python distributed.SpecCluster.scale用法及代码示例
- Python distributed.get_worker用法及代码示例
- Python distributed.SpecCluster.scale_up用法及代码示例
- Python difflib.unified_diff用法及代码示例
- Python distributed.Client.nthreads用法及代码示例
- Python distributed.comm.resolve_address用法及代码示例
- Python distributed.Client.unpublish_dataset用法及代码示例
- Python distributed.get_task_stream用法及代码示例
- Python distributed.Client.start_ipython_scheduler用法及代码示例
- Python distributed.as_completed.batches用法及代码示例
注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 NumPy | digitize method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。