numpy에서 ndarray와 array의 차이점은 무엇입니까?
차이 무엇 ndarray
과 array
NumPy와의는? 그리고 numpy 소스 코드에서 구현을 어디에서 찾을 수 있습니까?
numpy.array
그냥 만드는 편리한 함수입니다 ndarray
; 그것은 클래스 자체가 아닙니다.
을 사용하여 배열을 만들 수도 numpy.ndarray
있지만 권장되는 방법은 아닙니다. 의 docstring에서 numpy.ndarray
:
배열은
array
,zeros
또는empty
...을 사용하여 구성해야합니다. 여기에 제공된 매개 변수ndarray(...)
는 배열 인스턴스화를위한 저수준 방법 ( )을 나타냅니다.
구현의 대부분은 C 코드에 있으며 여기 multiarray 이지만 ndarray 인터페이스를 살펴볼 수 있습니다.
https://github.com/numpy/numpy/blob/master/numpy/core/numeric.py
numpy.array
를 반환하는 함수입니다 numpy.ndarray
. numpy.array 객체 유형이 없습니다.
numpy.array와 numpy.ndarray의 차이점을 보여주는 예제 코드 몇 줄
예열 단계 : 목록 구성
a = [1,2,3]
타입 확인
print(type(a))
당신은 얻을 것이다
<class 'list'>
np.array를 사용하여 목록에서 배열 생성
a = np.array(a)
또는 예열 단계를 건너 뛸 수 있습니다.
a = np.array([1,2,3])
타입 확인
print(type(a))
당신은 얻을 것이다
<class 'numpy.ndarray'>
numpy 배열의 유형이 numpy.ndarray임을 알려줍니다.
유형을 확인할 수도 있습니다
isinstance(a, (np.ndarray))
그리고 당신은 얻을 것이다
True
다음 두 줄 중 하나에 오류 메시지가 나타납니다.
np.ndarray(a) # should be np.array(a)
isinstance(a, (np.array)) # should be isinstance(a, (np.ndarray))
numpy.ndarray()
클래스이며, numpy.array()
작성하는 메소드 / 함수 ndarray
입니다.
numpy 문서에서 ndarray
클래스 에서 배열을 만들려면 인용 된대로 두 가지 방법으로 할 수 있습니다.
1- 사용 array()
, zeros()
또는 empty()
방법 : 배열 어레이 0을 사용하거나 비어 생성한다 (또한 참조 아래 부분 참조). 여기에 제공된 매개 변수 ndarray(…)
는 배열 인스턴스화를위한 저수준 방법 ( )을 나타냅니다.
2- ndarray
클래스에서 직접 : 다음을 사용하여 배열을 만드는 두 가지 모드가 있습니다. buffer가 None이면 shape, dtype 및 order 만 사용됩니다. buffer가 버퍼 인터페이스를 노출하는 객체 인 경우 모든 키워드가 해석됩니다.__new__
아래 예제는 버퍼 값을 할당하지 않았으므로 임의의 배열을 제공합니다.
np.ndarray(shape=(2,2), dtype=float, order='F', buffer=None) array([[ -1.13698227e+002, 4.25087011e-303], [ 2.88528414e-306, 3.27025015e-309]]) #random
또 다른 예는 버퍼 객체에 배열 객체를 할당하는 것입니다.
>>> np.ndarray((2,), buffer=np.array([1,2,3]), ... offset=np.int_().itemsize, ... dtype=int) # offset = 1*itemsize, i.e. skip first element array([2, 3])
위 예제에서 우리는 "buffer"에리스트를 할당 할 수없고 버퍼에 대한 ndarray 객체를 반환하기 위해 numpy.array ()를 사용해야한다는 것을 알 수 있습니다.
Conclusion: use numpy.array()
if you want to make a numpy.ndarray()
object"
I think with np.array()
you can only create C like though you mention the order, when you check using np.isfortran()
it says false. but with np.ndarrray()
when you specify the order it creates based on the order provided.
'IT story' 카테고리의 다른 글
asp.net mvc : Html.CheckBox가 추가 숨겨진 입력을 생성하는 이유 (0) | 2020.05.07 |
---|---|
OneToOne 관계 게으른 만들기 (0) | 2020.05.07 |
액세스 토큰이 만료되는 이유는 무엇입니까? (0) | 2020.05.06 |
새로운 자동 참조 계산 메커니즘은 어떻게 작동합니까? (0) | 2020.05.06 |
JavaScript에서 setAttribute vs.attribute =를 사용하는시기 (0) | 2020.05.06 |