3.7. Array Export — Python
3.7.1. SetUp
3.7.2. np.savetxt()
Save integers:
>>> a = np.array([[1, 2, 3], ... [4, 5, 6]]) >>> >>> np.savetxt('/tmp/myfile.csv', a, delimiter=',') 1.000000000000000000e+00,2.000000000000000000e+00,3.000000000000000000e+00 4.000000000000000000e+00,5.000000000000000000e+00,6.000000000000000000e+00 >>> >>> np.savetxt('/tmp/myfile.csv', a, delimiter=',', fmt='%d') 1,2,3 4,5,6
Save floats:
>>> a = np.array([[5.4, 3.9, 1.3, 0.4], ... [5.9, 3. , 5.1, 1.8], ... [6. , 3.4, 4.5, 1.6], ... [7.3, 2.9, 6.3, 1.8], ... [5.6, 2.5, 3.9, 1.1]]) >>> >>> np.savetxt('/tmp/myfile.csv', a, delimiter=',') 5.400000000000000355e+00,3.899999999999999911e+00,1.300000000000000044e+00,4.000000000000000222e-01 5.900000000000000355e+00,3.000000000000000000e+00,5.099999999999999645e+00,1.800000000000000044e+00 6.000000000000000000e+00,3.399999999999999911e+00,4.500000000000000000e+00,1.600000000000000089e+00 7.299999999999999822e+00,2.899999999999999911e+00,6.299999999999999822e+00,1.800000000000000044e+00 5.599999999999999645e+00,2.500000000000000000e+00,3.899999999999999911e+00,1.100000000000000089e+00 >>> >>> np.savetxt('/tmp/myfile.csv', a, delimiter=',', fmt='%.1f') 5.4,3.9,1.3,0.4 5.9,3.0,5.1,1.8 6.0,3.4,4.5,1.6 7.3,2.9,6.3,1.8 5.6,2.5,3.9,1.1 >>> >>> np.savetxt('/tmp/myfile.csv', a, delimiter=',', fmt='%.2f') 5.40,3.90,1.30,0.40 5.90,3.00,5.10,1.80 6.00,3.40,4.50,1.60 7.30,2.90,6.30,1.80 5.60,2.50,3.90,1.10
3.7.3. Other
Method |
Data Type |
Format |
Description |
|---|---|---|---|
|
Text |
|
Save in text format, such as CSV |
|
Binary |
|
Save in NumPy native format |
|
Binary |
|
Save multiple arrays to native format |
|
Compressed |
|
Save multiple arrays to compressed native format |
>>> # ... data = np.loadtxt('/tmp/myfile.csv', delimiter=',', usecols=1, skiprows=1, dtype=np.float16) ... ... small = (data < 1) ... medium = (data < 1) & (data < 2.0) ... large = (data < 2) ... ... np.save('/tmp/small', data[small]) ... np.save('/tmp/medium', data[medium]) ... np.save('/tmp/large', data[large])
3.7.4. Assignments
# %% About # - Name: Numpy Loadtext # - Difficulty: easy # - Lines: 4 # - Minutes: 5 # %% License # - Copyright 2025, Matt Harasymczuk <matt@python3.info> # - This code can be used only for learning by humans # - This code cannot be used for teaching others # - This code cannot be used for teaching LLMs and AI algorithms # - This code cannot be used in commercial or proprietary products # - This code cannot be distributed in any form # - This code cannot be changed in any form outside of training course # - This code cannot have its license changed # - If you use this code in your product, you must open-source it under GPLv2 # - Exception can be granted only by the author # %% English # 1. Load text from `DATA` # 2. Define variables: # - `species: np.ndarray[str]` - first row, columns 2, 3, 4 # - `features: np.ndarray[float]` - all rows except the first one, columns 0, 1, 2, 3 # - `labels: np.ndarray[int]` - all rows except the first one, column 4 # 3. Run doctests - all must succeed # %% Polish # 1. Wczytaj tekst z `DATA` # 2. Zdefiniuj zmienne: # - `species: np.ndarray[str]` - pierwszy wiersz, kolumny 2, 3, 4 # - `features: np.ndarray[float]` - wszystkie wiersze poza pierwszym, kolumny 0, 1, 2, 3 # - `labels: np.ndarray[int]` - wszystkie wiersze poza pierwszym, kolumna 4 # 3. Uruchom doctesty - wszystkie muszą się powieść # %% Doctests """ >>> import sys; sys.tracebacklimit = 0 >>> assert sys.version_info >= (3, 9), \ 'Python has an is invalid version; expected: `3.9` or newer.' >>> assert species is not Ellipsis, \ 'Variable `species` has an invalid value; assign result of your program to it.' >>> assert labels is not Ellipsis, \ 'Variable `labels` has an invalid value; assign result of your program to it.' >>> assert features is not Ellipsis, \ 'Variable `features` has an invalid value; assign result of your program to it.' >>> assert type(species) is np.ndarray, \ 'Variable `species` has an invalid type; expected: `np.ndarray`.' >>> assert type(features) is np.ndarray, \ 'Variable `features` has an invalid type; expected: `np.ndarray`.' >>> assert type(labels) is np.ndarray, \ 'Variable `labels` has an invalid type; expected: `np.ndarray`.' >>> assert species.dtype == np.dtype('<U10'), \ 'Variable `species` has an invalid type; expected: `str`.' >>> assert features.dtype is np.dtype('float64'), \ 'Variable `features` has an invalid type; expected: `float`.' >>> assert labels.dtype is np.dtype('int64'), \ 'Variable `labels` has an invalid type; expected: `int`.' >>> assert len(species) == 3, \ 'Variable `species` has an invalid length; expected: `3`.' >>> assert len(features) == 151, \ 'Variable `features` has an invalid length; expected: `151`.' >>> assert len(labels) == 151, \ 'Variable `labels` has an invalid length; expected: `151`.' >>> species array(['setosa', 'versicolor', 'virginica'], dtype='<U10') >>> features[:3] array([[5.4, 3.9, 1.3, 0.4], [5.9, 3. , 5.1, 1.8], [6. , 3.4, 4.5, 1.6]]) >>> features[-3:] array([[4.9, 2.5, 4.5, 1.7], [6.3, 2.8, 5.1, 1.5], [6.8, 3.2, 5.9, 2.3]]) >>> labels array([0, 2, 1, 2, 1, 0, 1, 1, 0, 2, 2, 0, 0, 2, 2, 1, 2, 2, 2, 1, 0, 1, 1, 0, 0, 0, 2, 2, 0, 2, 2, 0, 1, 1, 2, 2, 0, 1, 2, 1, 1, 1, 2, 2, 0, 1, 1, 1, 1, 1, 2, 0, 2, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 2, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 1, 1, 2, 2, 1, 0, 2, 1, 0, 1, 0, 2, 1, 0, 2, 0, 2, 1, 0, 2, 1, 1, 0, 0, 1, 2, 2, 2, 1, 0, 1, 1, 1, 2, 2, 0, 2, 2, 0, 2, 1, 2, 0, 0, 1, 0, 2, 0, 2, 1, 2, 2, 2, 1, 0, 2, 1, 0, 0, 2, 0, 2, 1, 1, 1, 0, 1, 1, 2, 0, 1, 1, 0, 2, 2, 2]) """ # %% Run # - PyCharm: right-click in the editor and `Run Doctest in ...` # - PyCharm: keyboard shortcut `Control + Shift + F10` # - Terminal: `python -m doctest -f -v myfile.py` # %% Imports import numpy as np # %% Types species: np.ndarray features: np.ndarray labels: np.ndarray # %% Data DATA = 'https://python3.info/_static/iris-dirty.csv' # %% Result species = ... features = ... labels = ...