1from typing import Any, List, Optional 2 3import numpy as np 4from numpy.typing import ArrayLike, DTypeLike, _SupportsArray 5 6x1: ArrayLike = True 7x2: ArrayLike = 5 8x3: ArrayLike = 1.0 9x4: ArrayLike = 1 + 1j 10x5: ArrayLike = np.int8(1) 11x6: ArrayLike = np.float64(1) 12x7: ArrayLike = np.complex128(1) 13x8: ArrayLike = np.array([1, 2, 3]) 14x9: ArrayLike = [1, 2, 3] 15x10: ArrayLike = (1, 2, 3) 16x11: ArrayLike = "foo" 17x12: ArrayLike = memoryview(b'foo') 18 19 20class A: 21 def __array__(self, dtype: DTypeLike = None) -> np.ndarray: 22 return np.array([1, 2, 3]) 23 24 25x13: ArrayLike = A() 26 27scalar: _SupportsArray = np.int64(1) 28scalar.__array__(np.float64) 29array: _SupportsArray = np.array(1) 30array.__array__(np.float64) 31 32a: _SupportsArray = A() 33a.__array__(np.int64) 34a.__array__(dtype=np.int64) 35 36# Escape hatch for when you mean to make something like an object 37# array. 38object_array_scalar: Any = (i for i in range(10)) 39np.array(object_array_scalar) 40