学习Numpy笔记之Array与Numpy.mgrid

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个
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值