Sai A
Updated date Feb 12, 2024
In this blog, we will learn how to convert NumPy arrays into XML format using Python. Explore multiple methods, including manual construction with ElementTree and using Pandas.

## Introduction:

In data manipulation in Python, NumPy arrays stand as one of the most versatile and widely used tools. Often, however, we encounter scenarios where we need to convert these arrays into different formats for various purposes, such as sharing data or integrating with other systems. One such format is XML, a popular markup language for storing and transporting structured data. In this blog, we will explore multiple methods to convert NumPy arrays into XML in Python.

## Method 1: Using ElementTree

One simple method to convert a NumPy array into XML is by utilizing Python's built-in ElementTree module. This method involves iterating through the array and constructing XML elements accordingly. Let's dive into the code:

``````import numpy as np
import xml.etree.ElementTree as ET

# Sample NumPy array
data = np.array([[1, 2, 3], [4, 5, 6]])

# Create root element
root = ET.Element("data")

# Iterate through the array and append elements
for row in data:
row_elem = ET.SubElement(root, "row")
for value in row:
ET.SubElement(row_elem, "value").text = str(value)

# Create XML tree
tree = ET.ElementTree(root)

# Save XML to file
tree.write("numpy_array.xml")
``````

### Output:

``````<?xml version="1.0" encoding="UTF-8"?>
<data>
<row>
<value>1</value>
<value>2</value>
<value>3</value>
</row>
<row>
<value>4</value>
<value>5</value>
<value>6</value>
</row>
</data>
``````

In this method, we first create the root element for our XML document. Then, we iterate through each row of the NumPy array, creating a new XML element for each row and appending child elements for the individual values within the row. Finally, we construct the XML tree and save it to a file named "numpy_array.xml".

## Method 2: Using Pandas

Another approach involves using the Pandas library, which provides powerful tools for data manipulation and conversion. We can convert the NumPy array to a Pandas DataFrame and then use Pandas' built-in XML export functionality. Here's how:

``````import numpy as np
import pandas as pd

# Sample NumPy array
data = np.array([[1, 2, 3], [4, 5, 6]])

# Convert to DataFrame
df = pd.DataFrame(data)

# Export DataFrame to XML
df.to_xml("numpy_array.xml", root_name="data", row_name="row", col_name="value", index=False)
``````

### Output:

``````<data>
<row>
<value>1</value>
<value>2</value>
<value>3</value>
</row>
<row>
<value>4</value>
<value>5</value>
<value>6</value>
</row>
</data>
``````

In this method, we first convert the NumPy array to a Pandas DataFrame. Then, we use the `to_xml` function provided by Pandas to export the DataFrame to XML format. We specify the root element name, row element name, column element name, and optionally whether to include the DataFrame index in the XML output.

## Conclusion:

In this blog, we have explored two efficient methods to convert NumPy arrays into XML format using Python. Whether you prefer a more manual approach with ElementTree or the convenience of Pandas, these methods offer flexibility and ease of use for transforming your data.