Python科学计算之Numpy

全文使用np表示numpy

Numpy底层是由C语言实现,所以计算高效简洁。
创建数组

Array=np.array(列表/元组)

访问二维及以上的数组时以下两种放法等价

#打印二维数组第二行第二列的值,以下两种方法等价
print(Array[1,1])
print(Array[1][1])

数组的相关属性
在这里插入图片描述

print(Array.ndim) # 显示数组的维度
print(Array.size) # 显示数组元素的总个数
print(Array.shape) # 显示数组的形状
print(Array.dtype) # 显示数组中数据的类型
print(Array.itemsize) # 显示数组中数据类型所占字节数

创建特殊的数组
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
array()和asarray()的区别
在这里插入图片描述
改变数组形状
在这里插入图片描述
当改变形状时,应该考虑到数组中元素的个数,确保改变前后,元素总个数相等。

在这里插入图片描述

b = np.arange(12)
b.reshape(-1,1)#第一个参数取-1,自动计算该维度的取值,第二个参数为1表示一列。可以得到一个12行1列的二维数组。
b.reshape(-1) # 再将上面的二维数组转换成一维数组
数组运算(加减乘除)

两个数组的长度和形状应该一致,对应元素进行运算。
一维数组可以和多维数组
当两个数组中元素的数据类型不同时,精度低的数据类型,会自动转换为精度更高的数据类型,然后再进行运算。

a = np.array([0,1,2,3])
b = np.array([
[1,2,3,4],
[5,6,7,8],
[9,10,11,12]
])
a+b #数组a依次与数组b的每一行对应元素相加 
矩阵运算

矩阵相乘

# 矩阵相乘的两种方法
np.matmul(A,B)
np.dot(A,B)

在这里插入图片描述
在这里插入图片描述

A.T#矩阵A的转置
A.I#矩阵A的逆
数组间的运算

在这里插入图片描述

在这里插入图片描述

随机数模块np.random

在这里插入图片描述
seed()函数设置随机数种子

np.random.seed(随机数种子)

打乱顺序函数shuffle()
在这里插入图片描述

对于多维数组shuffle只打乱第一维。

np.cumsum()

这个函数的功能是返回给定axis上的累计和

  1. 对于一维输入a(可以是list,可以是array,假设a=[1, 2, 3, 4, 5, 6, 7] ,就是当前列之前的和加到当前列上,如下:
>>>import numpy as np
>>> a=[1,2,3,4,5,6,7]
>>> np.cumsum(a)
array([  1,   3,   6,  10,  15,  21,  28])
  1. 对于二维输入a,axis=0(第1行不动,将第1行累加到其他行);axis=1(进入最内层,转化成列处理。第1列不动,将第1列累加到其他列),如下:
>>>import numpy as np
>>> c=[[1,2,3],[4,5,6],[7,8,9]]
>>> np.cumsum(c,axis=0)
array([[ 1,  2,  3],
       [ 5,  7,  9],
       [12, 15, 18]])
>>> np.cumsum(c,axis=1)
array([[ 1,  3,  6],
       [ 4,  9, 15],
       [ 7, 15, 24]])
  1. 对于三维输入a, axis=0 (第1行不动,将第1行累加到其他行); axis=1(进入第2层,每个第二层第1行不动,累加到其他行); axis=2(进入最内层,转化成列处理。第1列不动,将其累加到其他列),注意维数从外到内是0-2编号,如下:
>>>import numpy as np
>>> a
[[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 20, 30]]]
>>> np.cumsum(a,axis=0)
array([[[ 1,  2,  3],
        [ 4,  5,  6]],
 
       [[ 8, 10, 12],
        [14, 25, 36]]])
>>> np.cumsum(a,axis=1)
array([[[ 1,  2,  3],
        [ 5,  7,  9]],
 
       [[ 7,  8,  9],
        [17, 28, 39]]])
>>> np.cumsum(a,axis=2)
array([[[ 1,  3,  6],
        [ 4,  9, 15]],
 
       [[ 7, 15, 24],
        [10, 30, 60]]])

参考来源

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值