NumericArray

NumericArray[array,type]

creates a numeric array of the specified type.

NumericArray[array,type,method]

uses method to convert numbers into type.

Details and Options

  • NumericArray provides the most compact representation of array to reduce memory usage and enhance speed of execution.
  • The input array can be a full list of any depth containing machinesized integers and machinesized approximate real and complex numbers.
  • Possible settings for type include:
  • "Integer8"signed 8-bit integers from through 127
    "UnsignedInteger8"integers 0 through 255
    "Integer16"signed 16-bit integers from through
    "UnsignedInteger16"integers 0 through 65535
    "Integer32"signed 32-bit integers from through
    "UnsignedInteger32"integers 0 through
    "Integer64"signed 64-bit integers from through
    "UnsignedInteger64"integers 0 through
    "Real32"single-precision real (32-bit)
    "Real64"double-precision real (64-bit)
    "ComplexReal32"single-precision complex
    "ComplexReal64"double-precision complex
  • NumericArray[array,type] clips values to the range supported by type and rounds reals to integers, if necessary.
  • Other conversion method settings include:
  • "Check"checks values to be compatible with type
    "Coerce"coerces to type
    "Round"rounds reals to integers
    "ClipAndCheck"clips to the range and checks for compatible type
    "ClipAndCoerce"clips to the range and coerces to type
    "ClipAndRound"clips to the range and rounds reals to integers
  • For complex numbers, the method is applied separately to real and imaginary parts.
  • NumericArray is treated as a raw object by functions like AtomQ and for purposes of pattern matching.
  • Normal[NumericArray[]] yields the list of values in the numeric array.
  • Functions such as Length, Equal and First work with NumericArray objects.
  • Functions such as Part, Take and Drop can be used to take or drop parts of a NumericArray object.
  • Functions such as ListPlot, ArrayPlot and BarChart can visualize a NumericArray object.

Examples

open allclose all

Basic Examples  (2)

Create a vector of byte size integers:

Convert a matrix of reals to a numeric array:

Convert back to a regular list:

Scope  (20)

Basic Uses  (6)

Create a numeric array from a list using a specific type:

Specify the conversion method to fit numbers in the desired type:

Create a 2D numeric array:

Convert ByteArray to NumericArray:

Convert SparseArray to NumericArray:

Convert SymmetrizedArray to NumericArray:

NumericArray Types  (3)

Integers  (1)

Create an 8-bit unsigned integer numeric array:

For a larger integer, use a larger integer type:

Clip large values into a smaller integer type:

Real numbers can be rounded when converted into an integer type:

Reals  (1)

Create a 32-bit real numeric array:

Coerce exact numbers into reals:

Complexes  (1)

Create a complex numeric array:

Coerce exact real and imaginary parts of a complex number into reals:

Converting between NumericArray Objects  (2)

Convert an "Integer8" array to "Real32":

If numbers cannot be represented in the new type, specify a conversion method:

Operating on a NumericArray  (9)

Array Properties  (3)

ByteCount of a numeric array:

Dimensions:

ArrayDepth:

Structural Operations  (6)

Flatten a numeric array:

Normal converts a numeric array to a List:

Apply Join to numeric array objects:

Use Part to take a part of a numeric array:

Use Take to take a part of a numeric array:

Apply Drop to elements of a numeric array:

Properties & Relations  (2)

Byte count of a NumericArray is less than the equivalent list of random integers:

Normal can convert a NumericArray to a normal expression:

Possible Issues  (2)

Some conversion methods may not give numbers suitable for the new type:

Use a conversion that yields numbers supported by the new type:

The default conversion method will fail when the input array contains numbers that are out of range for the specified type.

Try to store in an "Integer8" numeric array:

Use the "ClipAndCoerce" method to automatically clip to the smallest "Integer8":

Wolfram Research (2019), NumericArray, Wolfram Language function, https://reference.wolfram.com/language/ref/NumericArray.html.

Text

Wolfram Research (2019), NumericArray, Wolfram Language function, https://reference.wolfram.com/language/ref/NumericArray.html.

CMS

Wolfram Language. 2019. "NumericArray." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/NumericArray.html.

APA

Wolfram Language. (2019). NumericArray. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/NumericArray.html

BibTeX

@misc{reference.wolfram_2023_numericarray, author="Wolfram Research", title="{NumericArray}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/NumericArray.html}", note=[Accessed: 18-March-2024 ]}

BibLaTeX

@online{reference.wolfram_2023_numericarray, organization={Wolfram Research}, title={NumericArray}, year={2019}, url={https://reference.wolfram.com/language/ref/NumericArray.html}, note=[Accessed: 18-March-2024 ]}