In this article, we will cover how to extract a particular column from a 1-D array of tuples in python.
Example
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)]
Output: [3.23, 6.6 , 7.7 , 8.9 ]
Explanation: Extracting the 3rd column from 1D array of tuples.
Method 1: Using Slice
As a first step let us first define a 1D array of tuples with each tuple having 3 elements, if we consider these 3 elements as 3 columns, we can use the slicing technique to extract a particular column.
Python3
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 ] |
Output:
array([3.23, 6.6 , 7.7 , 8.9 ])
Method 2: Using the lambda function
In this example, we are taking a pandas data frame and one of the columns is an array of tuples, we can slice that particular column and apply a lambda function to extract a particular column from the tuple of an array.
Python3
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) |
Output:
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. ]
Method 3: Using list comprehension
A list comprehension can be used to extract a particular element from each tuple in the list and create a new list with the extracted elements.
In this example, we have the following list of tuples, we can use a list comprehension to extract the second element from each tuple (index 1) as follows:
Python3
data = [( 'Alice' , 25 , 'NYC' ), ( 'Bob' , 30 , 'Chicago' ), ( 'Eve' , 35 , 'SF' )] ages = [age for name, age, city in data] print (ages) |
Time Complexity: O(n)
Space Complexity: O(1)