python中ndim_python – 在numpy中ndarray的“ndim,shape,size,.. etc”的标识是什么

numpy是作为C代码和Python代码的混合实现的.源可以在github上浏览,可以作为git存储库下载.但是挖掘你的C源代码需要一些工作.许多文件都标记为.c.src,这意味着它们在编译之前会通过一个或多个perprocessing层.

Python也是用C和Python混合编写的.因此,不要试图将事物强加于C语言.

最好利用您的MATLAB经验,调整以允许Python.而numpy有许多超越Python的怪癖.它使用的是Python语法,但由于它有自己的C代码,因此它不仅仅是一个Python类.

我使用Ipython作为我通常的工作环境.有了这个我可以使用foo?查看foo的文档(与Python帮助(foo)相同,foo ??查看代码 – 如果它是用Python编写的(如MATLAB / Octave类型(foo))

Python对象具有属性和方法.也是属性看起来像属性,但实际上使用方法来获取/设置.通常,您不需要了解属性和属性之间的区别.

x.ndim # as noted, has a get, but no set; see also np.ndim(x)

x.shape # has a get, but can also be set; see also np.shape(x)

X在Ipython中向我展示了ndarray的所有完成.有4 * 18.一些是方法,一些属性. X ._显示了一些以__开头的更多内容.这些都是“私人” – 不是为了公共消费,而是仅仅是语义.您可以查看它们并在需要时使用它们.

off hand x.shape是我设置的唯一ndarray属性,即便如此,我通常使用reshape(…)代替.阅读他们的文档,看看差异. ndim是维度的数量,直接更改它是没有意义的.它是len(x.shape);更改形状以更改ndim.同样,x.size不应该是你直接改变的东西.

其中一些属性可通过函数访问. np.shape(x)== x.shape,类似于MATLAB size(x). (MATLAB没有.属性语法).

x .__ array_interface__是一个方便的属性,它给出了一个包含许多属性的字典

In [391]: x.__array_interface__

Out[391]:

{'descr': [('', '

'version': 3,

'shape': (50,),

'typestr': '

'strides': None,

'data': (165646680, False)}

ndarray的文档(shape,dtype = float,buffer = None,offset = 0,

strides = None,order = None),__ new__方法列出了这些属性:

`Attributes

----------

T : ndarray

Transpose of the array.

data : buffer

The array's elements, in memory.

dtype : dtype object

Describes the format of the elements in the array.

flags : dict

Dictionary containing information related to memory use, e.g.,

'C_CONTIGUOUS', 'OWNDATA', 'WRITEABLE', etc.

flat : numpy.flatiter object

Flattened version of the array as an iterator. The iterator

allows assignments, e.g., ``x.flat = 3`` (See `ndarray.flat` for

assignment examples; TODO).

imag : ndarray

Imaginary part of the array.

real : ndarray

Real part of the array.

size : int

Number of elements in the array.

itemsize : int

The memory use of each array element in bytes.

nbytes : int

The total number of bytes required to store the array data,

i.e., ``itemsize * size``.

ndim : int

The array's number of dimensions.

shape : tuple of ints

Shape of the array.

strides : tuple of ints

The step-size required to move from one element to the next in

memory. For example, a contiguous ``(3, 4)`` array of type

``int16`` in C-order has strides ``(8, 2)``. This implies that

to move from element to element in memory requires jumps of 2 bytes.

To move from row-to-row, one needs to jump 8 bytes at a time

(``2 * 4``).

ctypes : ctypes object

Class containing properties of the array needed for interaction

with ctypes.

base : ndarray

If the array is a view into another array, that array is its `base`

(unless that array is also a view). The `base` array is where the

array data is actually stored.

所有这些应该被视为属性,但我不认为numpy实际上使用属性机制.一般来说,它们应被视为“只读”.除了形状,我只记得改变数据(指向数据缓冲区的指针)和步幅.

你可能感兴趣的:(python中ndim)