IT story

numpy에서 ndarray와 array의 차이점은 무엇입니까?

hot-time 2020. 5. 7. 07:59
반응형

numpy에서 ndarray와 array의 차이점은 무엇입니까?


차이 무엇 ndarrayarrayNumPy와의는? 그리고 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.

참고URL : https://stackoverflow.com/questions/15879315/what-is-the-difference-between-ndarray-and-array-in-numpy

반응형