numpy.asarray(a, dtype=None, order=None, *, like=None)
a = [1, 2]
np.asarray(a) #array([1, 2])
리스트를 배열로 바꾸었다
a = np.array([1,2])
np.asarray(a) is a #True
존재하는 배열은 복사되지 않는다
a = np.array([1, 2], dtype=np.float32)
np.asarray(a, dtype=np.float32) is a #True
데이터 타입이 같을 때는 복사하지 않는다
a = np.array([1, 2], dtype=np.float32)
np.asarray(a, dtype=np.float64) is a #False
데이터 타입이 다를 때 복사한다
a = np.zeros([2, 5])
arr = np.array(a)
asarr = np.asarray(a)
a[0] = 3
print(arr)
print()
print(asarr)
numpy.asfarray(a, dtype=<class 'numpy.double'>)
np.asfarray([2, 3]) #array([2., 3.])
np.asfarray([2, 3], dtype='float') #array([2., 3.])
np.asfarray([2, 3], dtype='int8') #array([2., 3.])
numpy.asanyarray(a, dtype=None, order=None, *, like=None)
my_list = [1, 3, 5, 7, 9]
print ("Input list : ", my_list)
print(type(my_list))
out_arr = np.asanyarray(my_list)
print ("output array from input list : ", out_arr) #List to array
print(type(out_arr))
Input list : [1, 3, 5, 7, 9]
<class 'list'>
output array from input list : [1 3 5 7 9]
<class 'numpy.ndarray'>
my_tuple = ([1, 3, 5, 7, 9],[1,2,3,4,5])
print ("Input list : ", my_tuple)
print(type(my_tuple))
out_arr = np.asanyarray(my_tuple)
print ("output array from input list : ", out_arr) # tuple to array
print(type(out_arr))
Input list : ([1, 3, 5, 7, 9], [1, 2, 3, 4, 5])
<class 'tuple'>
output array from input list : [[1 3 5 7 9]
[1 2 3 4 5]]
<class 'numpy.ndarray'>
my_scalar = 12
print ("Input list : ", my_scalar)
print(type(my_scalar))
out_arr = np.asanyarray(my_scalar)
print ("output array from input list : ", out_arr) #scalar to array
print(type(out_arr))
print(out_arr.shape)
print(out_arr.ndim)
Input list : 12
<class 'int'>
output array from input list : 12
<class 'numpy.ndarray'>
()
0
a = np.array([(1.0, 2), (3.0, 4)], dtype='f4,i4').view(np.recarray)
np.asanyarray(a) is a #Instances of ndarray subclasses are passed through as-is:
numpy.ascontiguousarray(a, dtype=None, *, like=None)
my_list = [100, 200, 300, 400, 500]
print ("Input list : ", my_list)
print(type(my_list))
out_arr = np.ascontiguousarray(my_list, dtype = np.float32)
print ("output array from input list : ", out_arr)
print(type(out_arr))
Input list : [100, 200, 300, 400, 500]
<class 'list'>
output array from input list : [100. 200. 300. 400. 500.]
<class 'numpy.ndarray'>
list->ndarray
my_tuple = ([2, 6, 10], [8, 12, 16])
print ("Input list : ", my_tuple)
print(type(my_tuple))
out_arr = np.ascontiguousarray(my_tuple, dtype = np.int32)
print ("output array from input list : ", out_arr)
print(type(out_arr))
Input list : ([2, 6, 10], [8, 12, 16])
<class 'tuple'>
output array from input list : [[ 2 6 10]
[ 8 12 16]]
<class 'numpy.ndarray'>
tuple->ndarraty
my_scalar = 100
print ("Input scalar : ", my_scalar)
print(type(my_scalar))
out_arr = np.ascontiguousarray(my_scalar, dtype = np.float32)
print ("output array from input list : ", out_arr)
print(type(out_arr))
Input scalar : 100
<class 'int'>
output array from input list : [100.]
<class 'numpy.ndarray'>
scalar->ndarray
numpy.asfortranarray(a, dtype=None, *, like=None)
my_list = [1, 3, 5, 7, 9]
print ("Input list : ", my_list)
print(type(my_list))
out_arr = np.asfortranarray(my_list)
print ("output fortranarray from input list : ", out_arr)
print(type(out_arr))
Input list : [1, 3, 5, 7, 9]
<class 'list'>
output fortranarray from input list : [1 3 5 7 9]
<class 'numpy.ndarray'>
my_tuple = ([1, 3, 9], [8, 2, 6])
print ("Input tuple : ", my_tuple)
out_arr = np.asfortranarray(my_tuple, dtype ='int8')
print ("output fortran array from input tuple : ", out_arr)
Input tuple : ([1, 3, 9], [8, 2, 6])
output fortran array from input tuple : [[1 3 9]
[8 2 6]]
my_scalar = 15
print ("Input scalar : ", my_scalar)
out_arr = np.asfortranarray(my_scalar, dtype ='float')
print ("output fortran array from input scalar : ", out_arr)
Input scalar : 15
output fortran array from input scalar : [15.]
in_arr = np.arange(9).reshape(3, 3)
print ("Input array : ", in_arr)
# checking if it is fortranarray
print(in_arr.flags['F_CONTIGUOUS'])
out_arr = np.asfortranarray(in_arr, dtype ='float')
print ("output array from input array : ", out_arr)
# checking if it has become fortranarray
print(out_arr.flags['F_CONTIGUOUS'])
Input array : [[0 1 2]
[3 4 5]
[6 7 8]]
False
output array from input array : [[0. 1. 2.]
[3. 4. 5.]
[6. 7. 8.]]
True
numpy.fromiter(iter, dtype, count=-1, *, like=None)
iterable = (x * x*x for x in range(4))
print(type(iterable))
gfg = np.fromiter(iterable, int)
print(gfg)
print(type(gfg))
<class 'generator'>
[ 0 1 8 27]
<class 'numpy.ndarray'>
iterable = (x * x for x in range(6))
print(type(iterable))
gfg = np.fromiter(iterable, float)
print(gfg)
print(type(gfg))
<class 'generator'>
[ 0. 1. 4. 9. 16. 25.]
<class 'numpy.ndarray'>
Construct an array by executing a function over each coordinate.
The resulting array therefore has a value fn(x, y, z) at coordinate (x, y, z).
numpy.fromfunction(function, shape, *, dtype=<class 'float'>, like=None, **kwargs)
function: callable
shape(N,): tuple of ints
np.fromfunction(lambda i, j: i, (2, 2), dtype=float)
array([[0., 0.],
[1., 1.]])
lambda i, j: i 를 사용하여 2x2 크기의 배열을 생성
배열의 인덱스 i를 받아서 i 값을 반환
첫 번째 행의 값은 0으로, 두 번째 행의 값은 1로 채워진 2x2 크기의 배열
np.fromfunction(lambda i, j: j, (2, 2), dtype=float)
array([[0., 1.],
[0., 1.]])
인덱스 j를 받아서 j값을 반환
첫 번째 열의 값은 0으로, 두 번째 열의 값은 1로 채워진 2x2 크기의 배열
np.fromfunction(lambda i, j: i == j, (3, 3), dtype=int)
array([[ True, False, False],
[False, True, False],
[False, False, True]])
배열의 대각선 요소에 해당하는 인덱스에서만 True 값을 반환
def my_function(x, y):
return x * y
arr = np.fromfunction(my_function, (5, 5), dtype=int)
print(arr)
[[ 0 0 0 0 0]
[ 0 1 2 3 4]
[ 0 2 4 6 8]
[ 0 3 6 9 12]
[ 0 4 8 12 16]]