Skip to content
  • (+91) 9409548155
  • support@appdividend.com
  • Home
  • Pricing
  • Instructor
  • Tutorials
    • Laravel
    • Python
    • React
    • Javascript
    • Angular
  • Become A Tutor
  • About Us
  • Contact Us
Menu
  • Home
  • Pricing
  • Instructor
  • Tutorials
    • Laravel
    • Python
    • React
    • Javascript
    • Angular
  • Become A Tutor
  • About Us
  • Contact Us
  • Home
  • Pricing
  • Instructor
  • Tutorials
    • Laravel
    • Python
    • React
    • Javascript
    • Angular
  • Become A Tutor
  • About Us
  • Contact Us
Python

Converting Tuple to Numpy Array in Python

  • 11 Mar, 2025
  • Com 0
Converting Python Tuple to Numpy Array

If you want to perform mathematical computations on the numerical dataset but your current data structure is a tuple, then it would be easy for you to perform operations if it is in a numpy array.

To convert a Python tuple to a Numpy array, the main method is numpy.array(). For example, if you have a simple tuple, say tup = (1, 2, 3), converting it with numpy.array(tup) should give a 1D array. It always creates a copy of the data.

Using np.array() to convert a tuple to an array

import numpy as np

# Creating a tuple
tup = (11, 21, 19, 18, 46, 29)

print(tup)
# Output: (11, 21, 19, 18, 46, 29)

print(type(tup))
# Output: <class 'tuple'>

# Converting the tuple to a numpy array
arr = np.array(tup)

print(arr)
# Output: [11 21 19 18 46 29]

print(type(arr))
# Output: <class 'numpy.ndarray'>

Empty tuple

If you convert an empty tuple into a numpy array, the result will be an empty array with data type float64.

import numpy as np

# Empty tuple
tup = ()

print(tup)
# Output: ()

print(type(tup))
# Output: <class 'tuple'>

# Converting an empty tuple to a numpy array
arr = np.array(tup)

print(arr)
# Output: []

print(type(arr))
# Output: <class 'numpy.ndarray'>

print(arr.dtype)
# Output: float64

Specifying Data Types

To enforce type consistency in numpy array objects, you can pass the “dtype” argument.

Let’s create a tuple with int64 and float64 types, and after the conversion, set the data type of the whole numpy array to int64.

import numpy as np

# Creating a mixed-type tuple
tup = (1., 2.5, 3, 19)

print(tup)
# Output: (1.0, 2.5, 3, 19)

print(type(tup))
# Output: <class 'tuple'>

# Conversion
arr = np.array(tup, dtype=int)

print(arr)
# Output: [ 1  2  3 19]

print(type(arr))
# Output: <class 'numpy.ndarray'>

print(arr.dtype)
# Output: int64

Please remember that mixed data types (e.g., int + str) result in dtype=object, which is inefficient for computations.

Handling Mixed Data Types

If you have tuples with incompatible data types, it will create object arrays, but structured arrays can organize heterogeneous data.

import numpy as np

# Creating a mixed-type tuple (name as string, age as integer)
data = [('Alice', 25), ('Bob', 30)]

# Defining structured dtype (U10: Unicode string of max length 10, i4: 4-byte integer)
dtype = np.dtype([('name', 'U10'), ('age', 'i4')])

# Creating structured NumPy array
arr_structured = np.array(data, dtype=dtype)

# Printing structured array
print(arr_structured)
# Output: [('Alice', 25) ('Bob', 30)]

# Accessing the 'age' column
print(arr_structured['age'])
# Output: [25 30]

Varying-Length Sub-Tuples

If you pass a tuple of different lengths, NumPy fails to determine a uniform shape and raises the ValueError: setting an array element with a sequence.

If you intend to store non-uniform sequences, explicitly specify dtype=object in the numpy.array() method to fix the error. This tells NumPy: “Treat each element as a separate object rather than trying to make a uniform array.”

import numpy as np

# Varying length tuple
tup = ((1, 2), (3,))

print(tup)
# Output: ((1, 2), (3,))

print(type(tup))
# Output: <class 'tuple'>

# Conversion
arr = np.array(tup, dtype=object)

print(arr)
# Output: [[1, 2] [3]]

print(type(arr))
# Output: <class 'numpy.ndarray'>

print(arr.dtype)
# Output: object

Nested tuple to Multi-Dimensional Arrays

If the tuple contains nested tuples, the numpy.array() method creates a multi-dimensional array.

# Importing the numpy package
import numpy as np

# Defining nested tuple
nested_tuple = ((1, 2), (3, 4))

print(nested_tuple)
# Output: ((1, 2), (3, 4))

print(type(nested_tuple))
# Output: <class 'tuple'>

# Converting the nested tuple to a multi-dimensional numpy array
multi_array = np.array(nested_tuple)

print(multi_array)
# Output: [[1 2]
#          [3 4]]

print(type(multi_array))
# Output: <class 'numpy.ndarray'>

Here are two alternate ways for the conversion:

  1. Using numpy.asarray()
  2. Using numpy.fromiter()

Alternate approach 1: Using numpy.asarray()

The numpy.asarray() method avoids copying data if the input is already an array but behaves like numpy.array() for tuples.

Using numpy.asarray()

# Importing the numpy package
import numpy as np

# Defining a tuple
tup = (11, 21, 19, 18, 46, 29)

print(tup)
# Output: (11, 21, 19, 18, 46, 29)

print(type(tup))
# Output: <class 'tuple'>

# Converting the tuple to a numpy array
arr = np.asarray(tup)

print(arr)
# Output: [11 21 19 18 46 29]

print(type(arr))
# Output: <class 'numpy.ndarray'>

Alternate approach 2: Using np.fromiter()

If you are working with large tuples and you want to convert them into an array efficiently, you must use numpy.fromiter() method. It avoids intermediate list creation, reducing memory overhead.

import numpy as np

# Large tuple of integers
large_tuple = tuple(range(1, 10**6))  # A tuple with 1 million elements

# Efficient conversion using np.fromiter()
arr = np.fromiter(large_tuple, dtype=np.int32)

print(arr[:10])
# Output: [ 1  2  3  4  5  6  7  8  9 10]

print(arr.shape)
# Output: (999999,)

If you have a large tuple with mixed data types, you can still use np.fromiter() but must structure it properly.

If you want to convert the Numpy array to a Python tuple, use the tuple() constructor.

That’s all!

Post Views: 23
Share on:
Krunal Lathiya

With a career spanning over eight years in the field of Computer Science, Krunal’s expertise is rooted in a solid foundation of hands-on experience, complemented by a continuous pursuit of knowledge.

How to Remove Duplicates From List in Python
How to Convert Numpy Array to Python Tuple

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Address: TwinStar, South Block – 1202, 150 Ft Ring Road, Nr. Nana Mauva Circle, Rajkot(360005), Gujarat, India

Call: (+91) 9409548155

Email: support@appdividend.com

Online Platform

  • Pricing
  • Instructors
  • FAQ
  • Refund Policy
  • Support

Links

  • About Us
  • Contact Us
  • Privacy Policy
  • Terms of services

Tutorials

  • Angular
  • React
  • Python
  • Laravel
  • Javascript
Copyright @2024 AppDividend. All Rights Reserved
Appdividend