NumPy学习笔记(一)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

一、NumPy中常见的模块

1.求和、求积以及进行差分的模块

2.线性代数模块

3.常见的随机函数模块

二、使用例子

1.点积和内积

2.随机函数的使用

3.np.arange( )函数创建数组

4.np.reshape()函数塑形

5.创建全0数组

6.数组交换元素

6.数组间的四则计算

7.数组求和

7.1全部求和

7.2按行求和

7.3按列求和

8.矩阵合并

8.1垂直(按列)合并

8.2水平(按行)合并

总结


提示:以下是本篇文章正文内容,下面案例可供参考

一、NumPy中常见的模块

1.求和、求积以及进行差分的模块

名称功能
prod()返回指定轴上的数组元素的乘积
sum()返回指定轴上的数组元素的总和
cumprod()返回沿给定轴的元素的累计乘积
cumsum()返回沿给定轴的元素的累计总和
diff()计算沿指定轴的离散差分
gradient()返回数组的梯度
cross()返回两个(数组)向量的叉积
trapz()使用复合梯度规则沿给定轴积分
mean()算术平均数

2.线性代数模块

名称功能
dot()计算两个数组的点积
vdot()计算两个向量的点积
inner()计算两个数组的内积
matmul()计算两个数组的矩阵积
determinant()计算数组的行列式
solve()计算线性矩阵方程
inv()计算矩阵的乘法逆矩阵

3.常见的随机函数模块

名称

功能

seed()确定随机数生成器
permutation()返回一个序列的随机排序或返回一个随机排列的范围
normal()产生正态分布的样本值
binomial()产生二项分布的样本值
rand()返回一组随机值,根据未定维度生成 [ 0, 1)的数据
randn()返回一个样本,具有标准正态分布
randint(low[, high, size])返回随机的整数,位于半开区间 [ low, high)
random_integers(low[, high, size])返回随机的整数,位于闭区间 [ low, high ]
random()返回随机的浮点数,位于半开区间 [ 0.0, 1.0)
bytes()返回随机字节


二、使用例子

1.点积和内积

计算两个数组的点积,对于一维数组,它是向量的内积;对于二维数组,其等效于矩阵乘法。

这里计算的点积的计算公式为:

[[ 1 * 10 + 2 * 30, 1 * 20 + 2 * 40 ], [ 3 * 10 + 4 * 30, 3 * 20 + 4 * 40]]

代码如下:

import numpy.matlib
import numpy as np
a = np.array([[1,2],[3,4]])
b = np.array([[10,20],[30,40]])
np.dot(a,b)
print(np.dot(a,b))#两个数组的点积运算

运行结果如下:

[[ 70 100]

[150 220]]

2.随机函数的使用

根据给定维度随机生成 [ 0, 1 )的数据,即包含 0,不包含 1。

代码如下:

import numpy as np
a = np.random.rand(5,2)
print(a)

运行结果如下:

[[0.51499268 0.55125435]

[0.02822255 0.2756882 ]

[0.90557536 0.83852284]

[0.13986003 0.92548228]

[0.6519275 0.23981899]]


3.np.arange( )函数创建数组

4.np.reshape()函数塑形

使用np.arange( )函数快速创建以下两个数组:第1个是含0-9 数值的数组,第2个是从2开始,200以内,等差值为10的数组。然后再把这第一个数组重塑成2行,把第二个数组重塑成4行。

代码如下:

import numpy as np
a = np.arange(10)   #第1个是含0-9 数值的数组
b = np.arange(2,200,10)  #第2个是从2开始,200以内,等差值为10的数组
x = np.arange(10).reshape(2,5) #reshape是塑形工具(行数,列数)
y = np.arange(2,200,10) .reshape(4,5)
print("第1个数组:", a)
print("第2个数组:", b)
print("第1个数组的变形:\n", x)
print("第2个数组的变形:\n", y)

5.创建全0数组

创建4*4的全0数组,数据类型为float。

import numpy as np
a0 = np.zeros([4,4], dtype=float) #创建4*4的全0数组,数据类型为float
#print(a0)

6.数组交换元素

将数组中第1行第1列元素赋值3,第2行第2列元素赋值6,第3行第3列元素赋值9,第4行第4列元素赋值12。对这个数组交换第1行和第2行,交换第1列和第2列。

代码如下:

#将数组中第1行第1列元素赋值3,第2行第2列元素赋值6,第3行第3列元素赋值9,第4行第4列元素赋值12
a0[0][0]=3
a0[1][1]=6
a0[2][2]=9
a0[3][3]=12
print("将数组中第1行第1列元素赋值3,第2行第2列元素赋值6,第3行第3列元素赋值9,第4行第4列元素赋值12:")
#a0

#对这个数组交换第1行和第2行
a0[[0,1]] = a0[[1,0]]

#对这个数组交换第1列和第2列
a0[ :,[0,1]] = a0[ :,[1,0]]

6.数组间的四则计算

创建一个维数为5*5,数值取值范围是 [0,1)的随机数组;创建一个维数为5*5,数值服从正态分布的随机数组;对创建的两个数组进行四则运算。

代码如下:

import numpy as np
d = np.random.random(55)      #创建一个维数为5*5,数值取值范围是 [0,1)的随机数组
#print(d)

f = np.random.randn(55)       #创建一个维数为5*5,数值服从正态分布的随机数组
#print(f)

#两个数组的加法运算:
print(d + f)

#两个数组的减法运算:
print(d - f)

#两个数组的乘法运算:
print(d * f)

#两个数组的除法运算:
print(d / f)

7.数组求和

一个数组为[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]。 第二个数组为相同维度,范围0到60,步长为5,对第二个数组进行求和,输出三种求和:全部求和、按行求和、按列求和。

#创建一个数组A为[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]])

#第二个数组B为相同维度,范围0到60,步长为5
B = np.arange(0,60,5).reshape(4,3)

7.1全部求和

#第二个数组全部求和:
print(np.sum(B))

7.2按行求和

#第二个数组按行求和:
value = np.sum(B, axis=1)
print(value)

7.3按列求和

#第二个数组按列求和:
value = np.sum(B, axis=0)
print(value)

  

8.矩阵合并

构造4*4的全1矩阵和单位矩阵,将两个数组垂直(按列)合并;将两个数组水平(按行)合并

import numpy as np
a1 = np.ones([4,4]).reshape(4, 4)       #构造4*4的全1矩阵
e = np.eye(4).reshape(4, 4)             #构造4*4的单位矩阵

8.1垂直(按列)合并

value1 = np.concatenate((a1, e), axis=1)
print(value1)

8.2水平(按行)合并

value1 = np.concatenate((a1, e), axis=0)
print(value1)


总结

       以上就是今天要讲的内容,本文仅仅简单介绍了numpy的部分使用,而numpy提供了大量能使我们快速便捷地处理数据的函数和方法。

       有不对的地方欢迎各位大神指正。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值