How to extract a particular column from 1D array of tuples?
Last Updated :
28 Feb, 2023
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.
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
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 )])
arr[:, 2 ]
|
Output:
array([3.23, 6.6 , 7.7 , 8.9 ])
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. ]
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)
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...