We use np.savetxt() to save arrays as text files and np.loadtxt() to read them back. This helps keep data safe and shareable.
np.savetxt() and np.loadtxt() for text in NumPy
Start learning this pattern below
Jump into concepts and practice - no test required
or
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction
Syntax
NumPy
np.savetxt(filename, array, fmt='%.18e', delimiter=' ', header='', footer='', comments='# ') np.loadtxt(filename, dtype=float, delimiter=' ', skiprows=0, usecols=None)
filename is the name of the file to save or load.
fmt controls how numbers are saved (like number of decimals).
Examples
my_array to 'data.txt' with default format and space delimiter.NumPy
np.savetxt('data.txt', my_array)NumPy
np.loadtxt('data.txt')NumPy
np.savetxt('data.csv', my_array, delimiter=',', fmt='%.2f')
NumPy
np.loadtxt('data.csv', delimiter=',')
Sample Program
This program saves a 2x2 array to 'example.txt' with two decimals, then loads it back and prints both arrays to show they match.
NumPy
import numpy as np # Create a simple 2D array array = np.array([[1.2345, 2.3456], [3.4567, 4.5678]]) # Save the array to a text file with 2 decimal places np.savetxt('example.txt', array, fmt='%.2f') # Load the array back from the file loaded_array = np.loadtxt('example.txt') print('Saved array:') print(array) print('\nLoaded array:') print(loaded_array)
Important Notes
When saving, the fmt controls how numbers appear. For example, '%.2f' means two decimals.
Loading assumes the file contains only numbers separated by the delimiter.
If your file has headers or comments, use skiprows to ignore them when loading.
Summary
np.savetxt() saves arrays to text files in a readable way.
np.loadtxt() reads numeric data from text files into arrays.
You can control formatting and delimiters to match your data needs.
Practice
1. What is the main purpose of
np.savetxt() in NumPy?easy
Solution
Step 1: Understand the function purpose
np.savetxt()is designed to save arrays to text files, making the data readable and shareable.Step 2: Compare with other options
Options B, C, and D describe different functions or actions unrelated to saving arrays as text files.Final Answer:
To save a NumPy array to a text file in a readable format -> Option CQuick Check:
np.savetxt() saves arrays to text files [OK]
Hint: Remember: savetxt saves arrays as readable text files [OK]
Common Mistakes:
- Confusing savetxt with loadtxt
- Thinking it saves to binary files
- Assuming it converts arrays to lists
2. Which of the following is the correct syntax to save a 2D NumPy array
arr to a file named data.txt using np.savetxt()?easy
Solution
Step 1: Recall the correct parameter order for np.savetxt()
The first argument is the filename (string), the second is the array to save.Step 2: Check each option
np.savetxt('data.txt', arr) matches the correct order. np.savetxt(arr, 'data.txt') reverses the order. np.save('data.txt', arr) uses np.save which saves binary files. np.loadtxt('data.txt', arr) uses np.loadtxt which reads files, not saves.Final Answer:
np.savetxt('data.txt', arr) -> Option AQuick Check:
Filename first, array second in np.savetxt() [OK]
Hint: Filename goes first, array second in np.savetxt() [OK]
Common Mistakes:
- Swapping filename and array arguments
- Using np.save instead of np.savetxt
- Confusing np.loadtxt with np.savetxt
3. What will be the output of the following code?
import numpy as np
arr = np.array([[1, 2], [3, 4]])
np.savetxt('temp.txt', arr, fmt='%d', delimiter=',')
loaded = np.loadtxt('temp.txt', delimiter=',', dtype=int)
print(loaded)medium
Solution
Step 1: Understand saving with delimiter and format
The array is saved as text with comma delimiter and integer format, so the file lines look like '1,2' and '3,4'.Step 2: Loading with matching delimiter and dtype
Using np.loadtxt with delimiter=',' and dtype=int reads the file back into a 2D integer array.Step 3: Print output format
Printing a NumPy array shows it with spaces between elements and new lines for rows, so output is [[1 2] [3 4]].Final Answer:
[[1 2] [3 4]] -> Option DQuick Check:
Loadtxt reads saved text back as array [OK]
Hint: Match delimiter and dtype when loading saved text [OK]
Common Mistakes:
- Expecting list output instead of array
- Missing delimiter in loadtxt causing errors
- Using wrong dtype causing float instead of int
4. Identify the error in this code snippet:
import numpy as np
arr = np.array([1.5, 2.5, 3.5])
np.savetxt('file.txt', arr, fmt='%d')
loaded = np.loadtxt('file.txt', dtype=float)
print(loaded)medium
Solution
Step 1: Check format string in np.savetxt()
The format '%d' saves numbers as integers, so 1.5, 2.5, 3.5 become 1, 2, 3 in the file.Step 2: Loading with dtype=float
Loading back as float converts these integers to floats 1.0, 2.0, 3.0, losing original decimal parts.Step 3: Identify the error
The error is the format string truncates data, causing loss of precision.Final Answer:
Using '%d' format truncates floats to integers when saving -> Option AQuick Check:
Format string controls saved data type [OK]
Hint: Use '%f' to save floats, not '%d' [OK]
Common Mistakes:
- Assuming loadtxt can't read floats
- Thinking delimiter is required for 1D arrays
- Believing np.savetxt requires 2D arrays only
5. You have a 2D NumPy array with mixed integer and float values. You want to save it to a text file with comma separation and load it back preserving the exact values. Which code snippet correctly achieves this?
hard
Solution
Step 1: Choose correct format for mixed data
Usingfmt='%.2f'saves all numbers as floats with 2 decimals, preserving float and integer values.Step 2: Match delimiter in save and load
Both saving and loading usedelimiter=','ensuring data is correctly split on commas.Step 3: Check other options for errors
np.savetxt('data.csv', arr, delimiter=',', fmt='%d') loaded = np.loadtxt('data.csv', delimiter=',', dtype=float) uses '%d' which truncates floats. np.savetxt('data.csv', arr, delimiter=';') loaded = np.loadtxt('data.csv', delimiter=',') mismatches delimiters. np.savetxt('data.csv', arr) loaded = np.loadtxt('data.csv', delimiter=',') saves without delimiter but loads with comma, causing errors.Final Answer:
np.savetxt('data.csv', arr, delimiter=',', fmt='%.2f') loaded = np.loadtxt('data.csv', delimiter=',') -> Option BQuick Check:
Match format and delimiter to preserve data [OK]
Hint: Use float format and matching delimiter both ways [OK]
Common Mistakes:
- Using integer format for float data
- Mismatching delimiters between save and load
- Not specifying format causing precision loss
