NumPy

Numpy提供多维数组对象(以存储同构或者异构

NumPy

Type: module

Provides

How to use the documentation

Documentation is available in two forms: docstrings provided
with the code, and a loose standing reference guide, available from
​​ ​the NumPy homepage​​​ ​​http://www.scipy.org​​_.

We recommend exploring the docstrings using
​​ ​IPython​​​ ​​http://ipython.scipy.org​​​_, an advanced Python shell with
TAB-completion and introspection capabilities.

For some objects, ​ ​np.info(obj)​​​ may provide additional help(用来获取函数,类,模块的一些相关信息). This is
particularly true if you see the line “Help on ufunc object:” at the top
of the help() page. Ufuncs are implemented in C, not Python, for speed.

The native Python help() does not know how to view their help, but our
np.info() function does.

To search for documents containing a keyword, do::

General-purpose documents like a glossary and help on the basic concepts
of numpy are available under the ​​ ​doc​​ sub-module::

下面举几个例子:

ndarray预览

翻译自​​Quickstart tutorial¶​​​ NumPy的主要的对象是同类的​ ​多维数组​​(homogeneous multidimensional array)。 NumPy的维度(dimensions)被称为​ ​轴(axes)​​。 轴的数字代表​ ​rank​​。

例如,在三维空间中一个坐标(coordinates)为​ ​[1, 2, 1]​​的点是一维数组,axis的长度(length)是3。而

的rank是 2 (此数组是2-dimensional)。它的第一个维度(​ ​dimension (axis)​​ )的长度是 2, 第二个维度长度是3。

NumPy的array类被称为​ ​ndarray​​。

  • ​ndarray.ndim​​: 数组的坐标轴(或轴或维度)(axes (dimensions))的个数。
  • ​ndarray.shape​​​: 数组的维度(dimensions),是由每个维度的​ ​length​​​组成的整数元组。
    对于一个n行m列的矩阵(matrix), shape便是​​ ​(n,m)​​。
  • ​ndarray.size​​​: 数组的元素(elements)的总数,等于​ ​shape​​的元素的积。
  • ​ndarray.dtype​​:一个描述数组的元素的类型的对象。
  • ​ndarray.itemsize​​​:数组的每个元素的二进制表示的大小。 例如,元素的类型为​ ​float64​​​的数组有 8 (=64/8)个​ ​itemsize​​​,类型为​ ​ complex32​​​是​ ​itemsize 4 (=32/8)​​。
  • ​ndarray.data​​:the buffer containing the actual elements of the array. Normally, we won’t need to use this attribute because we will access the elements in an array using indexing facilities.

下面有一些示例:

线性代数

数组的创建

参考 ​ ​np.doc.creation?​​ There are 5 general mechanisms for creating arrays:

Tips: 关于参数 ​ ​order​​:

​order​​​ 指内存中存储元素的顺序,​ ​C​​​ 指和 ​ ​C语言​​​ 相似(即行优先),​ ​F​​​ 指和 ​ ​Fortran​​ 相似(即列优先)

​dtype​

​t​

​t4​​(4位)

​b​

布尔值

​b​​​(​ ​True​​​或​ ​False​​)

​I​

​i8​​(64位)

​u​

无符号整数

​u8​​(64位)

​f​

浮点数

​f8​​(64位)

​c​

浮点复数

​c16​​(128位)

​o​

​o​​(指向对象的指针)

​S,a​

字符串

​S24​​(24个字符)

​U​

​Unicode​

​U24​​(24个Unicode字符)

​V​

​V12​​(12字节数据块)

允许我们至少在每列上使用不同的NumPy数据类型。

更多内容参考​​

当总组元素相加时,两种内存布局之间没有显著差异。然而,当考虑到以下情况时,将会有显著的差异。

[En]

When the total group elements are added, there is no significant difference between the two memory layouts. However, there will be a significant difference when considering the following circumstances.

从上面可以看出:
它在少量的大型向量上比在大量的小型向量上执行得更好。

[En]

It performs better on a small number of large vectors than on a large number of small vectors.

少量大型向量元素存储在相邻的内存位置,这解释了相对的性能优势。

[En]

A small number of large vector elements are stored in adjacent memory locations, which explains the relative performance advantage.

但是,与类C语言变种相比,整体操作要慢得多。

选择适当的内存布局可以将代码执行速度提高2个数量级以上。

[En]

Choosing the appropriate memory layout can increase the code execution speed by more than 2 orders of magnitude.

结语:

值得参考的资料:

探寻有趣之事!

Original: https://blog.51cto.com/u_15345348/5582416
Author: wx61276efd72203
Title: NumPy

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/500703/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球