Skip to main content

Create a numpy dynamic array.

Project description

Numpy Dynamic Array



PyPI tests coverage flake8 downloads license

Dynamically resizing Numpy array.

A dynamic array expands as you add more elements. So you don't need to determine the size ahead of time. The version present here is focused on being compatible with the typical Numpy indexing and functions.


Installation

pip install numpy_dynamic_array


Usage

Basics

from numpy_da import DynamicArray

data = DynamicArray(shape=2)
a = np.linspace(0, 9, 10)
data.append(a)  # requires resize (done automatically)

print(data)  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Indexing

Setting values with indexing

data = DynamicArray(shape=2)
data.append(np.linspace(0, 9, 10))
data[3] = 40
print(data)  # [0, 1, 2, 3, 40, 5, 6, 7, 8, 9]

Setting values with indexing (outside current array size) Set index_expansion=True

data = DynamicArray(shape=2, index_expansion=True)
data[5] = 1
print(data)  # [0, 0, 0, 0, 0, 1]

Setting values with slices (outside current array size) Set index_expansion=True

data = DynamicArray(shape=2, index_expansion=True)
data[5:8] = [1, 2, 3]
print(data)  # [0, 0, 0, 0, 0, 1, 2, 3]

Operators

Equality:

np_array = np.linspace(0, 9, 10)
data = DynamicArray()
data.append(np_array)
print(all(data == np_array))  # True

Addition:

np_array = np.linspace(0, 9, 10)
data = DynamicArray()
data.append(np_array)
print(all((data + 7.5) == (np_array + 7.5)))  # True

Other supported oparators:

  • floordiv (//)
  • mod (%)
  • mul (*)
  • neg (-)
  • pow (**)
  • truediv(/)
  • sub (-)
  • len (len())

Numpy Functions

np_array = np.linspace(0, 9, 10)
data = DynamicArray()
data.append(np_array)
print(data.max())  # 9
np_array = np.linspace(0, 9, 10)
data = DynamicArray()
data.append(np_array)
print(np.abs(data - 5))  # [5. 4. 3. 2. 1. 0. 1. 2. 3. 4.]

Multidimensional arrays

Use the shape to specify initial ndarray with correct dimensions.

data = DynamicArray(shape=(2, 2))  # requires resize
a = np.linspace(0, 9, 10).reshape(5, 2)
data.append(a)

For more examples look at the tests folder.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

numpy_dynamic_array-0.0.1.tar.gz (5.6 kB view hashes)

Uploaded Source

Built Distribution

numpy_dynamic_array-0.0.1-py3-none-any.whl (5.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page