Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在numpy中,ndarray和array有什么区别?_Python_Arrays_Numpy_Multidimensional Array_Numpy Ndarray - Fatal编程技术网

Python 在numpy中,ndarray和array有什么区别?

Python 在numpy中,ndarray和array有什么区别?,python,arrays,numpy,multidimensional-array,numpy-ndarray,Python,Arrays,Numpy,Multidimensional Array,Numpy Ndarray,Numpy中的ndarray和array之间有什么区别?在numpy源代码中哪里可以找到实现?numpy.array是一个返回numpy.ndarray的函数。没有对象类型numpy.array。numpy.array只是创建ndarray的一个方便函数;它本身不是一个类 您也可以使用numpy.ndarray创建数组,但这不是推荐的方法。从numpy.ndarray的文档字符串: 数组应使用数组、零或空。。。这里给出的参数是指 用于实例化数组的低级方法(ndarray(…)) 实现的大部分内容

Numpy中的
ndarray
array
之间有什么区别?在numpy源代码中哪里可以找到实现?

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

numpy.array
只是创建
ndarray
的一个方便函数;它本身不是一个类

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

数组应使用
数组
。。。这里给出的参数是指 用于实例化数组的低级方法(
ndarray(…)

实现的大部分内容都是C代码,但您可以从这里开始查看ndarray接口:


只需几行示例代码即可显示numpy.array和numpy.ndarray之间的差异

热身步骤:构建一个列表

a = [1,2,3]
检查类型

print(type(a))
print(type(a))
你会得到

<class 'list'>
<class 'numpy.ndarray'>
或者,您可以跳过热身步骤,直接进行热身

a = np.array([1,2,3])
检查类型

print(type(a))
print(type(a))
你会得到

<class 'list'>
<class 'numpy.ndarray'>
你会得到

True
以下两行中的任何一行都将显示错误消息

np.ndarray(a)                # should be np.array(a)
isinstance(a, (np.array))    # should be isinstance(a, (np.ndarray))

我认为使用
np.array()
只能创建C,尽管您提到了顺序,但当您使用
np.isfortran()
检查时,它会显示false。但是,当您指定它基于提供的订单创建的订单时,请使用
np.ndarrray()

numpy.ndarray()
是一个类,而
numpy.array()
是一个创建
ndarray
的方法/函数

在numpy docs中,如果要从
ndarray
类创建数组,可以使用引用的两种方法:

1-使用
array()
zeros()
empty()
方法: 数组应使用数组、零或空来构造(请参阅下面的另一节)。这里给出的参数是指用于实例化数组的低级方法(
ndarray(…)

2-直接从
ndarray
类: 使用
\uuuu new\uuuu
创建数组有两种模式: 如果buffer为None,则只使用shape、dtype和order。 如果buffer是一个公开buffer接口的对象,那么将解释所有关键字

下面的示例给出了一个随机数组,因为我们没有分配缓冲区值:

另一个例子是将数组对象分配给缓冲区 例如:

从上面的示例中,我们注意到我们不能将列表分配给“buffer”,我们必须使用numpy.array()为缓冲区返回ndarray对象


结论:如果您想创建一个
numpy.ndarray()
对象,请使用
numpy.ndarray()

我认为array()是在in-array_-getarray()中实现的。如果您忘记
np.array
不是一个类,就像我经常做的那样,这会对您造成伤害。
x=np.array([1,2.1,3])
如果存在(x,np array):#将给您一个类型错误
仍然不知道为什么应该避免使用ndarray?因为它的级别很低?@flxb:no,
array\u getarray
numpy.ndarray的实现。至少在当前的实现中,
array\uuu
numpy.array
至少从开始。那么为什么不推荐使用它呢?