[python] 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클래스에서 직접 :
두 가지 모드를 사용하여 배열을 만듭니다__new__ buffer가 None이면 shape, dtype 및 order 만 사용됩니다. buffer가 버퍼 인터페이스를 노출하는 객체 인 경우 모든 키워드가 해석됩니다.

아래 예제는 버퍼 값을 할당하지 않았기 때문에 임의의 배열을 제공합니다.

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 ()를 사용해야한다는 것을 알 수 있습니다.

결론 : numpy.array()당신이 numpy.ndarray()물건 을 만들고 싶다면 사용 “


답변

나는 np.array()당신이 np.isfortran()그것을 언급 할 때 C를 만들 수 있다고 생각 합니다 . 그러나 np.ndarrray()주문을 지정하면 제공된 주문을 기반으로 생성됩니다.


답변