NumPy中ndarray和array的区别是什么?它们在NumPy源代码中的实现在哪里?
当前回答
只需几行示例代码来显示numpy之间的区别。数组和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。Array只是一个创建ndarray的方便函数;它本身不是一个类。
您还可以使用numpy创建一个数组。Ndarray,但它不是推荐的方式。从numpy.ndarray的文档字符串:
数组应该使用array, 0或empty…这里给出的参数指的是a 用于实例化数组的低级方法(ndarray(…))。
实现的大部分肉是在C代码中,在multiarray中,但你可以从这里开始看ndarray接口:
https://github.com/numpy/numpy/blob/master/numpy/core/numeric.py
我认为使用np.array(),你只能创建C,尽管你提到了顺序,当你使用np.isfortran()检查时,它说false。但是对于np.ndarrray(),当您指定订单时,它会根据提供的订单创建。
numpy。Array是一个返回numpy的函数。ndarray对象。
没有numpy.array类型的对象。
只需几行示例代码来显示numpy之间的区别。数组和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(), zero()或empty()方法: 数组应该使用array、0或空来构造(请参阅下面的See Also部分)。这里给出的参数指的是用于实例化数组的低级方法(ndarray(…))。
2-直接从ndarray类 使用__new__创建数组有两种模式: 如果buffer为None,则只使用shape、dtype和order。 如果buffer是一个公开buffer接口的对象,那么所有关键字都将被解释。
下面的例子给出了一个随机数组,因为我们没有分配缓冲区值:
np ndarray, dtype=float, order= F,缓冲器=None 争吵([-1.13698227e+002, 4.25087011e-303], [2. 8852841414306, 3.27025015e-309])随机
另一个例子是将数组对象分配给缓冲区 例子:
>>> np.ndarray((2,), buffer=np.array([1,2,3]), ….itemsize抵消= np.int_ (), …Dtype =int) # offset = 1*itemsize,即跳过第一个元素 阵列([2、3])
从上面的例子中,我们注意到我们不能将一个列表分配给“buffer”,我们必须使用numpy.array()返回缓冲区的ndarray对象
结论:如果你想创建一个numpy.ndarray()对象,请使用numpy.array() "
推荐文章
- 在python中,在函数结束(例如检查失败)之前退出函数(没有返回值)的最佳方法是什么?
- 在Python中检查一个单词是否在字符串中
- Python glob多个文件类型
- 如何可靠地打开与当前运行脚本在同一目录下的文件
- Python csv字符串到数组
- 如何在Python中进行热编码?
- 如何嵌入HTML到IPython输出?
- 在Python生成器上使用“send”函数的目的是什么?
- 是否可以将已编译的.pyc文件反编译为.py文件?
- Django模型表单对象的自动创建日期
- 在Python中包装长行
- 如何计算两个时间串之间的时间间隔
- 我如何才能找到一个Python函数的参数的数量?
- 您可以使用生成器函数来做什么?
- 将Python诗歌与Docker集成