科学计算之Numpy入门1


版权声明:本文为威哥哥带你写代码原创文章,有错请评论,转载请注明,谢谢

Numpy基础

Numpy所包括的函数可以十分方便的进行数据处理,尤其是矩阵运算,之前的python都是使用列表与元组,在进行矩阵运算的时候非常不便。对于同样的数值计算任务,使用Numpy要比直接使Python代码方便得多。因为Numpy 能够直接对数组和矩阵进行操作,代码量大大的减少了,并且其众多的数学函数也会让编写代码的工作轻松许多。

如何生成矩阵

使用创建二维数组的方法创建矩阵,我们使用的是array函数

1.生成矩阵实例;

import numpy as np
a=np.array([[1,2],[3,4]])
print(a) 

输出结果为
在这里插入图片描述
2.数据类型定义;
我们知道每一个元素都有对应的数据类型,Numpy的数据类型有int32 int64 float32 bool等,我将如何定义呢?需要使用dtype,
实例:

a=np.array([[1,3,5],[2,5,3],[3,5,7]],dtype=np.float) 
print(a.dtype)

输出为:
在这里插入图片描述
这个时候数组中的每一个元素类型已经定义为了float64类型,当然你也可以定义为float32
3.查看矩阵信息;
这个时候可以用ndim查看维度(注意这里是数组的维度,区分清楚数组和矩阵),用shape和size看矩阵大小
实例:

a=np.array([[1,3,5],[2,5,3],[3,5,7]],dtype=np.float) 
print(a)
print('number of dim: ',a.ndim)
print('shape: ',a.shape)
print('size: ',a.size)
print(a.dtype)

输出:
在这里插入图片描述

特殊矩阵的创建

1.创建0矩阵

a=np.zeros((3,4))
print(a)

创建3行4列的0矩阵,输出为:
在这里插入图片描述
2.创建全为1的矩阵

a=np.ones((5,5))

创建5x5的矩阵
输出为:
在这里插入图片描述
3.利用reshape生成特定的矩阵

a=np.arange(8,20,1).reshape((3,4))

范围8到20,步长为1,生成3x4的矩阵
输出:
在这里插入图片描述
4.利用random生成随机矩阵

r=np.random.random((2,4))

生成2x4的随机数矩阵

矩阵的运算

1.加减运算
这里指的是2个矩阵的对应元素相加减,这里一定要注意是同类型的矩阵不然会报错

a=np.arange(8,20,1).reshape((3,4))
 print(a)
[[ 8  9 10 11]
 [12 13 14 15]
 [16 17 18 19]]
 b=np.ones((3,4))
 print(b)
[[1. 1. 1. 1.]
 [1. 1. 1. 1.]
 [1. 1. 1. 1.]]
>>> c=a-b
[[ 7.  8.  9. 10.]
 [11. 12. 13. 14.]
 [15. 16. 17. 18.]]

2.矩阵中每一个元素自己的平方运算

a=np.arange(8,20,1).reshape((3,4))
 print(a)
[[ 8  9 10 11]
 [12 13 14 15]
 [16 17 18 19]]
a**2
array([[ 64,  81, 100, 121],
       [144, 169, 196, 225],
       [256, 289, 324, 361]], dtype=int32)

3.矩阵的乘法运算
矩阵乘法的具体概念在线性代数中有具体解释,这里有2种用法,第一种:

c=np.dot(a,d)

第二种:

c=a.dot(d)

结果都一样,不过需要注意的是
在这里插入图片描述
ps:图片来自《线性代数》同济大学数学系编 第六版
一定要注意,不然是会报错的。

矩阵的其他操作

1.三角函数

>>> c=np.sin(b)
>>> print(b)
[[1. 1. 1. 1.]
 [1. 1. 1. 1.]
 [1. 1. 1. 1.]]
>>> print(c)
[[0.84147098 0.84147098 0.84147098 0.84147098]
 [0.84147098 0.84147098 0.84147098 0.84147098]
 [0.84147098 0.84147098 0.84147098 0.84147098]]

可以看出每一个元素都进行了sin()的操作,另外cos tan等同理,注意定义域范围。

2.判断大小

>>> a
array([[ 8,  9, 10, 11],
       [12, 13, 14, 15],
       [16, 17, 18, 19]])
>>> a<14
array([[ True,  True,  True,  True],
       [ True,  True, False, False],
       [False, False, False, False]])

这里判断小于14的值,符合则输出true否则false

3.求矩阵中的最大值和最小值和矩阵各个元素求和

print(np.sum(a))
print(np.min(a))
print(np.max(a))

同时我们也可以使用axis来控制行和列

print(np.sum(a,axis=1))  #axis为1则在行中求和,0则在列中
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值