在numpy数组Python中提取特定范围的列
Posted
技术标签:
【中文标题】在numpy数组Python中提取特定范围的列【英文标题】:Extract Specific RANGE of columns in numpy array Python 【发布时间】:2016-06-06 06:16:17 【问题描述】:我有一个数组:
e = np.array([[ 0, 1, 2, 3, 5, 6, 7, 8],
[ 4, 5, 6, 7, 5, 3, 2, 5],
[ 8, 9, 10, 11, 4, 5, 3, 5]])
我想通过 RANGE 中的列来提取数组,如果我想取范围 1 到 5 中的列,它将返回
e = np.array([[ 1, 2, 3, 5, ],
[ 5, 6, 7, 5, ],
[ 9, 10, 11, 4, ]])
如何解决?谢谢
【问题讨论】:
【参考方案1】:您可以只使用 e[:, 1:5] 来检索您想要的内容。
In [1]: import numpy as np
In [2]: e = np.array([[ 0, 1, 2, 3, 5, 6, 7, 8],
...: [ 4, 5, 6, 7, 5, 3, 2, 5],
...: [ 8, 9, 10, 11, 4, 5, 3, 5]])
In [3]: e[:, 1:5]
Out[3]:
array([[ 1, 2, 3, 5],
[ 5, 6, 7, 5],
[ 9, 10, 11, 4]])
https://docs.scipy.org/doc/numpy/reference/arrays.indexing.html
【讨论】:
我想你的意思是e[:, 1:5]
。
如果数组由十进制数组成。我希望检索 e[:, 1.1:5.2] 即提取 1.1 到 5.2 之间的数据集及其对应列中的值,我们该怎么做?
如果我想选择范围怎么办;假设列 1:3 和 5:7?【参考方案2】:
Numpy 行和列索引从 0 开始计数。
先指定行,然后指定列,用逗号分隔行与列。
单独使用时,“:”(冒号)用于缩短所有行或所有列。
当行或列说明符有范围时,“:”与指定包含起始范围和不包含结束范围的数字配对。
例如
import numpy as np
np_array = np.array( [ [ 1, 2, 3, ],
[ 4, 5, 6, ],
[ 7, 8, 9 ] ] )
first_row = np_array[0,:]
first_row
output: array([1, 2, 3])
last_column = np_array[:,2]
last_column
output: array([3, 6, 9])
first_two_vals = np_array[0,0:2]
first_two_vals
output: array([1, 2])
【讨论】:
以上是关于在numpy数组Python中提取特定范围的列的主要内容,如果未能解决你的问题,请参考以下文章