如何从一维数组中提取一个特定的列
在这篇文章中,我们将介绍如何在Python中从一维数组中提取一个特定的列。
示例
Input: [(18.18,2.27,3.23),(36.43,34.24,6.6),(5.25,6.16,7.7),(7.37,28.8,8.9)]
输出: [3.23, 6.6 , 7.7 , 8.9 ]
解释:从一维图元数组中提取第三列。
方法1: 使用切片的方法
作为第一步,让我们首先定义一个一维图元数组,每个图元有3个元素,如果我们把这3个元素看作是3个列,我们可以使用切片技术来提取一个特定的列。
import numpy as np
# define a 1d array of tuples
arr = np.array([(18.18, 2.27, 3.23), (36.43, 34.24, 6.6),
(5.25, 6.16, 7.7), (7.37, 28.8, 8.9)])
# slice the array by passing the
# column number
arr[:, 2]
输出:
array([3.23, 6.6 , 7.7 , 8.9 ])
方法2:使用lambda函数
在这个例子中,我们采取的是一个pandas数据框架,其中一列是一个图元数组,我们可以对该特定列进行切分,并应用lambda函数从数组的图元中提取一个特定列。
import numpy as np
import pandas as pd
data = pd.DataFrame({'approval': [10, 20, 30, 40, 50],
'temperature': [(18.18, 2.27, 3.23),
(36.43, 34.24, 6.6),
(5.25, 6.16, 7.7),
(7.37, 28.8, 8.9),
(12, 23, 3)]})
res = data['temperature'].apply(lambda x: x[2]).values
print(data)
print(res)
输出:
approval temperature
0 10 (18.18, 2.27, 3.23)
1 20 (36.43, 34.24, 6.6)
2 30 (5.25, 6.16, 7.7)
3 40 (7.37, 28.8, 8.9)
4 50 (12, 23, 3
The output for extracting 3rd column from the array of tuples
[3.23 6.6 7.7 8.9 3. ]