np.array()와 np.asarray()의 차이점은 무엇입니까?
NumPy와 NumPy의 차이점은 무엇입니까?언제 다른 한쪽을 사용하는 것이 좋을까요?동일한 출력을 생성하는 것 같습니다.
의 정의는 다음과 같습니다.
def asarray(a, dtype=None, order=None):
return array(a, dtype, copy=False, order=order)
...array
, 「」, 「」, 「」, 「」,copy=False
array
있다copy=True
폴트입입니니다
가장 큰 차이점은 이다.array
(복사)는 오브젝트의 복사본을 만듭니다.asarray
필요없으면 안 할 거야
되고 에 이 으로 리다이렉트 되고 있습니다.asanyarray
또는 어레이의 작성 루틴에 대해서는 각각에 대해 간략하게 요약하는 것이 좋습니다.
차이는 주로 새 어레이를 복사본으로 만드는 것이 아니라 입력을 변경하지 않고 반환하는 시점에 있습니다.
array
그럼 복사 타이밍을 결정하는 플래그를 포함한 다양한 옵션이 준비되어 있습니다(다른 기능의 대부분은 그 주위에 있는 씬래퍼입니다).상세한 설명은 문서와 마찬가지로 시간이 걸립니다(「어레이 작성」을 참조해 주세요).단, 예를 몇 가지 나타냅니다.
a
는 입니다.ndarray
, , , , 입니다.m
는 입니다.matrix
둘다 가 .dtype
float32
:
np.array(a)
★★★★★★★★★★★★★★★★★」np.array(m)
둘 다 복사됩니다.그게 기본 동작이기 때문입니다.np.array(a, copy=False)
★★★★★★★★★★★★★★★★★」np.array(m, copy=False)
m
아니다a
, 냐냐m
아니다ndarray
.np.array(a, copy=False, subok=True)
★★★★★★★★★★★★★★★★★」np.array(m, copy=False, subok=True)
다 , 하다, 하다, 하다.m
는 입니다.matrix
ndarray
.np.array(a, dtype=int, copy=False, subok=True)
다 . 이 둘 다 베끼기 때문이다.dtype
호환되지 않습니다.
은, 대부분, 얇은 있습니다.array
이치노
- : 입력이 호환성이 있는 경우 복사되지 않고 반환됩니다
asarray
.ndarray
)copy=False
를 참조해 주세요. - : 입력이 호환성이 있는 경우 복사되지 않고 반환됩니다
asanyarray
.ndarray
(예: class서 like like like like like like like like like)와 같은 서브클래스matrix
)copy=False
,subok=True
를 참조해 주세요. - : 입력이 호환성이 있는 경우 복사되지 않고 반환됩니다
ascontiguousarray
.ndarray
된 C순서('C')copy=False
,order='C')
. - : 입력이 호환성이 있는 경우 복사되지 않고 반환됩니다
asfortranarray
.ndarray
순서 「Fortran」)로 합니다.copy=False
,order='F'
를 참조해 주세요. - : 입력이 지정된 요건 문자열과 호환되는 경우 복사되지 않은 상태로 반환됩니다
require
. - : 입력은 항상 복사됩니다
copy
. - : 입력은 반복 가능한 것으로 취급됩니다(예를 들어, 데이터 교환 대신 반복자의 요소로 배열을 구성할 수 있습니다
fromiter
).object
어레이(반복기 포함), 항상 복사됩니다.
(와 같은 복사 규칙)과 같은 편리한 기능도 있습니다.asarray
, , , , , , , , , , , , 를 .ValueError
라도 nan
★★★★★★★★★★★★★★★★★」inf
및 (예: ) 。matrix
또는 레코드 어레이와 같은 특수한 경우에는 물론 실제 컨스트럭터(이것에 의해 버퍼상에서 직접 배열을 작성할 수 있습니다)도 가능합니다.
차이는 다음 예에서 확인할 수 있습니다.
매트릭스를 생성합니다.
>>> A = numpy.matrix(numpy.ones((3, 3))) >>> A matrix([[ 1., 1., 1.], [ 1., 1., 1.], [ 1., 1., 1.]])
numpy.array
A
카피를 수정하고 있기 때문에 동작하지 않습니다.>>> numpy.array(A)[2] = 2 >>> A matrix([[ 1., 1., 1.], [ 1., 1., 1.], [ 1., 1., 1.]])
numpy.asarray
A
.A
그 자체입니다.>>> numpy.asarray(A)[2] = 2 >>> A matrix([[ 1., 1., 1.], [ 1., 1., 1.], [ 2., 2., 2.]])
그 차이는 및 매뉴얼에 명확하게 기재되어 있습니다.차이는 인수 목록에 있으므로 이러한 파라미터에 따라 함수의 액션이 달라집니다.
함수 정의는 다음과 같습니다.
numpy.array(object, dtype=None, copy=True, order=None, subok=False, ndmin=0)
그리고.
numpy.asarray(a, dtype=None, order=None)
다음 인수는 전달될 수 있는 인수입니다.array
가 아니라 asarray
된 바와 : as뉴 as as as as as as as as as음음음음음음음음음 as as as as as as as as as as as
copy : bool 옵션 If true(기본값)의 경우 오브젝트가 복사됩니다.그렇지 않으면 복사는 다음과 같은 경우에만 이루어집니다.
__array__
시퀀스인 order 을 충족하기 가 반환됩니다.obj는 dtype, order 등입니다.subok : bool, 옵션의 If True일 경우 서브클래스가 통과됩니다.그렇지 않을 경우 반환되는 어레이는 강제로 기본 클래스 어레이가 됩니다(기본값).
ndmin : int, 옵션 결과 배열에 필요한 최소 치수 수를 지정합니다.이 요건을 충족하기 위해 필요에 따라 모양을 미리 설정합니다.
asarray(x)
~와 array(x, copy=False)
asarray(x)
「」를 확실히 .x
는 다른 작업이 수행되기 전에 배열이 됩니다. ifx
는 이미 어레이이기 때문에 복사는 행해지지 않습니다.장황한 퍼포먼스에 영향을 주지 않습니다.
에서는 '있다'는 것을 보증하는 하겠습니다.x
먼저 배열로 변환됩니다.
def mysum(x):
return np.asarray(x).sum()
다음은 그 차이를 증명할 수 있는 간단한 예입니다.
주요 차이점은 배열이 원본 데이터의 복사본을 만들며 다른 개체를 사용하여 원본 배열의 데이터를 수정할 수 있다는 것입니다.
import numpy as np
a = np.arange(0.0, 10.2, 0.12)
int_cvr = np.asarray(a, dtype = np.int64)
배열(a)의 내용은 그대로 유지되며, 원본 배열의 내용을 변경하지 않고 다른 개체를 사용하여 데이터에 대한 작업을 수행할 수 있습니다.
이 두 에 대해 알아보겠습니다.np.array()
★★★★★★★★★★★★★★★★★」np.asarray()
예를 들어 다음과 같습니다.
np.array(): 입력 데이터(리스트, 태플, 배열 또는 기타 시퀀스 유형)를 ndarray로 변환하고 입력 데이터를 기본적으로 복사합니다.
np.asarray(): 입력 데이터를 ndarray로 변환하지만 입력이 이미 ndarray이면 복사하지 않습니다.
#Create an array...
arr = np.ones(5); # array([1., 1., 1., 1., 1.])
#Now I want to modify `arr` with `array` method. Let's see...
arr = np.array(arr)[3] = 200; # array([1., 1., 1., 1., 1.])
의 no no of of of of of of of of of of of of of of of of of of of of of of of of of of of 의 복사본을 하고 있기 때문에 은 변경되지 않습니다.arr
.
이번에는 아, 아, 아, 아, 아, 아, 하다를 수정해 보세요.arr
asarray()
★★★★★★ 。
arr = np.asarray(arr)[3] = 200; # array([1., 200, 1., 1., 1.])
현재 원래 어레이로 작업하고 있기 때문에 이 어레이에서 변경이 발생합니다.
언급URL : https://stackoverflow.com/questions/14415741/what-is-the-difference-between-np-array-and-np-asarray
'it-source' 카테고리의 다른 글
Swing GUI를 가장 잘 포지셔닝하는 방법 (0) | 2022.11.20 |
---|---|
전자 요구()가 정의되지 않았습니다. (0) | 2022.11.20 |
봄에 자기 인스턴스화 개체에 종속성을 주입하려면 어떻게 해야 합니까? (0) | 2022.11.20 |
행을 찾을 수 없는 경우 JOIN 조건의 폴백 값 (0) | 2022.11.20 |
특수한 포인터Collectors.toMap에 null 엔트리 값이 있는 예외가 있습니다. (0) | 2022.11.20 |