学习Numpy笔记之Array与Numpy.mgrid

ぃ、小莉子 提交于 2019-12-05 23:21:17

Numpy

Numpy是Python中用于科学计算的核心库。它提供了一个功能强大的多维数组,并且提供了用来处理这些数组的工具。

Arrays

一个numpy数组是一个表达值的网格,所有类型都是相同的,并且由一个非负整数元组来索引。维度的数量是数组的rank(秩);数组的shape是整数的元组,在每个维度上给出数组的大小

我们可以从嵌套的Python列表中初始化numpy数组,并使用方括号来访问元素:

import numpy as np

a = np.array([1, 2, 3])   # 创建一个秩(rank)1数组
print(type(a))            # 输出 "<class 'numpy.ndarray'>"
print(a.shape)            # 输出 "(3,)"
print(a[0], a[1], a[2])   # 输出 "1 2 3"
a[0] = 5                  # 改变数组中的元素
print(a)                  # 输出 "[5, 2, 3]"

b = np.array([[1,2,3],[4,5,6]])    # 创建一个秩2数组
print(b.shape)                     # 输出 "(2, 3)"
print(b[0, 0], b[0, 1], b[1, 0])   # 输出 "1 2 4"

Numpy也提供许多创建数组的方法:
import numpy as np

a = np.zeros((2,2))   # 创建一个所有值都为0的数组
print(a)              # 输出 "[[ 0.  0.]
                      #          [ 0.  0.]]"

b = np.ones((1,2))    # 创建一个所有值都为1的数组
print(b)              # 输出s "[[ 1.  1.]]"

c = np.full((2,2), 7)  # 创建一个常量数组
print(c)               # 输出 "[[ 7.  7.]
                       #          [ 7.  7.]]"

d = np.eye(2)         # 创建一个2x2的单位矩阵
print(d)              # 输出 "[[ 1.  0.]
                      #          [ 0.  1.]]"

e = np.random.random((2,2))  # 创建一个随机的值的数组
print(e)                     # 可能输出 "[[ 0.91940167  0.08143941]
                             #               [ 0.68744134  0.87236687]]"

numpy.mgrid

numpy.mgrid = <numpy.lib.index_tricks.nd_grid object>

nd_grid例子返回一个密集的多维网格

一个numpy.lib.index_tricks.nd_grid例子当其被索引时返回一个密集的网格,所以每一个返回的argument有相同的shape。输出数组的维度和数量于索引维度的数量相同。如果复数(step length)不是一个复杂的数,则停止就不具有包含性。

然而如果step length时一个复数(例如5j),然后它的magnitude的整数部分得到解释。然后,它的大小的整数部分被解释为在开始和停止值之间指定要创建的点的数量,其中停止值是包容的

ps: 上面是翻译,原网址是:http://cs231n.github.io/python-numpy-tutorial/#scipy-dist
https://docs.scipy.org/doc/numpy/reference/generated/numpy.mgrid.html

理解:
一般的是np.mgrid[start:end:step]
start: 开始值
stop:结束坐标(不包括此点)
step:步数
example:

a = np.mgrid[1:6:0.2, 1:3:0.1]  //表示在1:5间切的间隔为0.2,1:3间切的间隔为0.1

b = np.mgrid[1:3:3j, 1:5:4j]  //表示在1:3间均匀取数,取3个,1:5间均匀取数,取4个
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!