Open In App

How to extract a particular column from 1D array of tuples?

Last Updated : 28 Feb, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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)



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads