NumPy中ndarray和array的区别是什么?它们在NumPy源代码中的实现在哪里?
当前回答
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() "
其他回答
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() "
我认为使用np.array(),你只能创建C,尽管你提到了顺序,当你使用np.isfortran()检查时,它说false。但是对于np.ndarrray(),当您指定订单时,它会根据提供的订单创建。
只需几行示例代码来显示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
numpy。Array是一个返回numpy的函数。ndarray对象。
没有numpy.array类型的对象。
推荐文章
- c#中比较数组的最简单方法
- 如何删除Python中的前导空白?
- python中的assertEquals和assertEqual
- 如何保持Python打印不添加换行符或空格?
- 为什么Python的无穷散列中有π的数字?
- Python 3.7数据类中的类继承
- 如何在PyTorch中初始化权重?
- 计数唯一的值在一列熊猫数据框架像在Qlik?
- 使用Pandas将列转换为行
- 从matplotlib中的颜色映射中获取单个颜色
- Javascript reduce()在对象
- 将Pandas或Numpy Nan替换为None以用于MysqlDB
- 使用pandas对同一列进行多个聚合
- 使用Python解析HTML
- django MultiValueDictKeyError错误,我如何处理它