flx*_*lxb 208 python arrays numpy multidimensional-array numpy-ndarray
ndarray和arrayNumpy有什么区别?我在哪里可以找到numpy源代码中的实现?
wim*_*wim 190
numpy.array只是一个创造一个便利功能ndarray; 它本身不是一个阶级.
您也可以使用创建数组numpy.ndarray,但不是推荐的方式.来自docstring numpy.ndarray:
阵列应该使用来构造
array,zeros或empty...这里给出的参数是指低级方法(ndarray(...)用于实例化阵列).
实现的大多数内容都是C代码,这里是多行的,但你可以在这里开始查看ndarray接口:
https://github.com/numpy/numpy/blob/master/numpy/core/numeric.py
Yin*_*ing 26
只需几行示例代码即可显示numpy.array和numpy.ndarray之间的区别
预热步骤:构建一个列表
a = [1,2,3]
Run Code Online (Sandbox Code Playgroud)
检查类型
print(type(a))
Run Code Online (Sandbox Code Playgroud)
你会得到
<class 'list'>
Run Code Online (Sandbox Code Playgroud)
使用np.array构造一个数组(从列表中)
a = np.array(a)
Run Code Online (Sandbox Code Playgroud)
或者,您可以跳过预热步骤,直接进行
a = np.array([1,2,3])
Run Code Online (Sandbox Code Playgroud)
检查类型
print(type(a))
Run Code Online (Sandbox Code Playgroud)
你会得到
<class 'numpy.ndarray'>
Run Code Online (Sandbox Code Playgroud)
它告诉你numpy数组的类型是numpy.ndarray
您还可以检查类型
isinstance(a, (np.ndarray))
Run Code Online (Sandbox Code Playgroud)
你会得到的
True
Run Code Online (Sandbox Code Playgroud)
以下两行中的任何一行都会显示错误消息
np.ndarray(a) # should be np.array(a)
isinstance(a, (np.array)) # should be isinstance(a, (np.ndarray))
Run Code Online (Sandbox Code Playgroud)
numpy.ndarray()是一个类,numpy.array()而是一个方法/函数来创建ndarray。
在 numpy 文档中,如果你想从ndarray类创建一个数组,你可以用引用的两种方式来完成:
1- using array(), zeros()or empty()methods:
数组应使用数组、零或空来构造(请参阅下面的另请参阅部分)。此处给出的参数是指ndarray(…)用于实例化数组的低级方法 ( )。
2-ndarray直接来自类:
有两种使用创建数组的模式__new__:如果缓冲区为无,则仅使用形状、数据类型和顺序。如果 buffer 是一个暴露缓冲区接口的对象,那么所有的关键字都会被解释。
下面的例子给出了一个随机数组,因为我们没有分配缓冲区值:
Run Code Online (Sandbox Code Playgroud)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
另一个示例是将数组对象分配给缓冲区示例:
Run Code Online (Sandbox Code Playgroud)>>> 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])
从上面的例子我们注意到我们不能将一个列表分配给“缓冲区”,我们不得不使用 numpy.array() 来返回缓冲区的 ndarray 对象
结论:numpy.array()如果你想制作一个numpy.ndarray()对象,请使用“
| 归档时间: |
|
| 查看次数: |
77710 次 |
| 最近记录: |