2013-04-08 103 views

回答

100

那么,numpy.array只是一个方便的功能来创建一个ndarray,它不是一个类本身。

您也可以使用numpy.ndarray创建一个数组,但这不是推荐的方法。从numpy.ndarray文档字符串:

阵列应该使用arrayzerosempty被构造...这里给出的参数是指用于实例的阵列的 低级别方法(ndarray(...))。

大部分执行的肉是在C代码,here in multiarray,但你可以开始在ndarray接口这里寻找:

https://github.com/numpy/numpy/blob/master/numpy/core/numeric.py

+1

我想阵列( )在[core/src/multiarray/methods.c]中实现(https://github.com/numpy/numpy/blob/master/numpy/core/src/mu ltiarray/methods.c)在array_getarray()中。 – flxb 2013-04-08 13:14:27

+1

这可以咬你,如果你忘记了'np.array'不是一个类,就像我经常这样做。 'x = np.array([1,2.1,3])' 'if isinstance(x,np.array):#会给你一个TypeError' – 2017-07-11 14:53:24

29

numpy.array是返回numpy.ndarray的函数。没有对象类型numpy.array。

5

只是例子几行代码,以显示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.darray(a)     # should be np.array(a) 
isinstance(a, (np.array)) # should be isinstance(a, (np.ndarray)) 
相关问题