NumPy 简单应用

Python中元组(Tuple)由一系列元素组成,元素可以是不同的数据类型,且元组是“写保护”的,创建后不能再修改。
Python中列表(list)的元素可以是任何对象,列表中所保存的是对象的指针。这样保存[1,2,3],需要有3个指针和三个整数对象。对于数值运算来说这种结构比较浪费内存和CPU计算时间。
Python还提供了一个array模块,array对象和列表不同,它直接保存数值,和C语言的一维数组比较类似,不支持多维,也没有各种运算函数,不适合做数值运算。
NumPy弥补了这些不足,它提供了两种基本的对象:ndarray(N-dimensional array object)和 ufunc(universal function object)。ndarray(下文统一称之为数组)是存储单一数据类型的多维数组,而ufunc则是能够对数组进行处理的函数。

创建

>>> a=np.array([[1,2], ... [3,4]])
>>> b=np.array([[5,6], ... [7,8]])

元素操作

插入

weights = np.insert(weights, 0, 0, axis = 0)#在0行插入一行0
weights = np.insert(weights, 0, 0, axis = 1)#在0列插入一列0

运算

* 表示元素乘

>>> a*b
array([[ 5, 12], [21, 32]])

dot()表示矩阵乘

>>> np.dot(a,b)
array([[19, 22], [43, 50]])

内嵌函数

random
从分布 N(μ,σ 2 )  中采样生成 mn  的矩阵

sigma * np.random.randn(m,n) + mu

创建一个Mersenne Twister随机数生成器,Mersenne Twister是生成伪随机数的算法

>>> import numpy
rng = numpy.random.RandomState(123)#123表示伪随机数生成器的种子,相同的种子生成相同的随机数序列
>>> rng.uniform()#按均匀分布从随机序列中采样
0.6964691855978616
>>> s = numpy.random.binomial(1, 0.5, (2,3))#按二项分布采样,成功的概率为0.5,输出样本组成2*3的数组
>>> s
array([[1, 0, 0], [0, 0, 0]])

你可能感兴趣的:(python,numpy)