Python中的数组是一种数据类型,可以存储多个值,同时数组的元素可以是任何类型的数据,包括数字、字符串、对象等。对于一个包含多个元素的数组来说,有时候我们只需要其中的几列,而不是全部列。本文将从以下几个方面详细阐述Python数组取其中的几列。
一、基础用法
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr[:, 0])
上述代码中,我们使用NumPy库创建一个3×3的数组,然后使用“:”表示取所有行中的第0列,也就是该数组中的第一列。运行结果为[1 4 7],也就是该数组中第一列的所有元素。
除了取单独的一列以外,我们也可以取多列,只需要在“:”之后添加要取的列即可。例如,如果我们想要取该数组的第0列和第2列,代码如下:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr[:, [0, 2]])
运行结果为array([[1, 3], [4, 6], [7, 9]]),也就是该数组中第1列和第3列的所有元素。注意,这里使用列表[0, 2]表示要取的列。
二、切片操作
除了使用“:”和列表来取其中的几列以外,还可以使用切片操作来取列。例如,如果我们想要取该数组中的第0列和第1列,代码如下:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr[:, 0:2])
运行结果为array([[1, 2], [4, 5], [7, 8]]),也就是该数组中第1列和第2列的所有元素。注意,这里使用切片操作“0:2”表示要取的列,也就是从第0列(包含)到第2列(不包含)。
三、ndarray.compress函数
对于数组中的每个元素,我们都可以通过一定的条件来判断是否需要取出。在NumPy中,我们可以使用ndarray.compress函数来满足这一需求。
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
condition = np.array([True, False, True, False, True, False])
print(arr.compress(condition))
运行结果为array([1, 3, 5]),也就是数组中所有满足条件(True)的元素组成的数组。在实际应用中,我们可以将“condition”数组作为一定的条件来判断是否需要取出该数组中的元素。
四、ndarray.take函数
在NumPy中,我们也可以使用ndarray.take函数来取出数组中的指定行或列。
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr.take([0, 2], axis=1))
运行结果为array([[1, 3], [4, 6], [7, 9]]),该数组中的第1列和第3列的所有元素。在take函数中,我们需要指定要取出的列的下标,这里使用[0, 2]表示要取的列,而“axis=1”表示按列取值。
五、结论
本文从基础用法、切片操作、ndarray.compress函数和ndarray.take函数等多个方面详细阐述了Python数组取其中的几列,并且给出了完整的代码示例。在实际应用中,我们可以根据实际需求来选择适合自己的方法。
原创文章,作者:HZTUP,如若转载,请注明出处:https://www.506064.com/n/374284.html