当前位置: 首页 > article >正文

Python 数据分析笔记— Numpy 基本操作(上)

文章目录

  • 学习内容:
    • 一、什么是数组、矩阵
    • 二、创建与访问数组
    • 三、矩阵基本操作

学习内容:

一、什么是数组、矩阵

数组(Array):是有序的元素序列,可以是一维、二维、多维。

array1 = [1,2,3]['a', 'b', 'c', 'd']
array2 = [[1,2,3],[4,5,6]]

矩阵(Matrix):是一个按照长方阵列排列的复数或实数集合。
在这里插入图片描述
基本运算
加(减)法: 对有相同行数与列数的数组(矩阵)的各项数字相加(减),得到新数组(矩阵)。
在这里插入图片描述
在这里插入图片描述
乘法:
1.数组乘法:对有相同行、列数的数组相乘得到新数组。

import numpy as np
a = np.array([[1,2,3],[4,5,6]])
b = np.array([[4,5,6],[7,8,9]])
a * b # 将数组a、b的对应项相乘
#输出:array([[ 4, 10, 18], [28, 40, 54]])

2.矩阵乘法:矩阵A 、B相乘,必须矩阵B行数==矩阵A列数。
在这里插入图片描述

二、创建与访问数组

(一)创建数组
1. 通过 python list 创建数组(array())

import numpy as np
np.array([1,2,3])
#输出:array([1, 2, 3])

2. 创建全零数组(zeros(行数,列数))

np.zeros((2,3)) # 创建一个2行3列的全0数组
#输出:array([[0., 0., 0.], [0., 0., 0.]])

3. 创建全1数组(ones(行数,列数))

np.ones((2,3)) # 创建一个2行3列的全1数组
#输出:array([[1., 1., 1.], [1., 1., 1.]])

4. 生成一个单位矩阵(行列号相同为1,其余置0)(eye(行数,列数))

np.eye(3,4)
#输出:array([[1., 0., 0., 0.],
#            [0., 1., 0., 0.],
#            [0., 0., 1., 0.]])

5. 创建间隔相等的数字数组(arange(含开始值, 不含结束值, 间隔值(可为小数))

np.arange(1, 5, 0.5)
#输出:array([1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5])
np.arange(5) # 生成[0-4]的整数数组

6. 随机生成数组
随机生成N个 [0-1) 之间的数组(np.random.rand(N))

np.random.rand(5)
#输出:array([0.74466065, 0.60475285, 0.01624092, 0.23405253, 0.31129117])

随机生成N个服从标准正态分布的数据(np.random.randn(N))

np.random.randn(3)
#输出:array([ 0.5861455 , -1.74517127, -0.04381483])

随机生成任意整数数组(np.random.randint(low: 下限,high:上限,size: 个数))

np.random.randint(10) # 生成1个[0-9]之间的整数
np.random.randint(10,size=5) # 生成5个[0-9]之间的整数数组
np.random.randint(10,20) #生成1个[10-20)之间的整数
np.random.randint(10,20,5) # 生成5个[10-20)之间的整数数组

7. 将转换数组维度(reshape(一维数,[二维数, 三维数, …]),要求转换前后元素个数相同

a = np.array([1,2,3,4,5,6,7,8])
a.reshape(2,4) # 将一维数组转为2行4列的二维数组
#输出:array([[1, 2, 3, 4],
#            [5, 6, 7, 8]])
b = np.array([[1, 2, 3],[4, 5, 6]])
b.reshape(6) # 将二维数组转为一组数组
#输出:array([1,2,3,4,5,6])

**(二)查看数组对象属性

list_a = [1,2,3,4]
array_a = np.array(list_a)
array_b = np.array([list_a, list_a])

1. 查看数组维度(ndim)

array_a.ndim # 维度为1
#输出:1
array_b.ndim # 维度为2
#输出:2

2. 查看数组大小(shape)

array_a.shape
#输出(4,)
array_b.shape
#输出(2,4)

3. 查看数组元素个数(size)

array_a.size # 4个
array_b.size # 8个

4. 查看数组元素数据类型(dtype)

array_a.dtype
#输出:dtype('int64')

三、矩阵基本操作

1. 用二维数组生成矩阵(matrix())

a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
np.matrix(a)
#输出:matrix([[1, 2, 3],
#             [4, 5, 6],
#             [7, 8, 9]])
matrix_a = np.matrix(a)

2. 矩阵加(减运算)

matrix_a + matrix_a
#输出:matrix([[ 2,  4,  6],
#             [ 8, 10, 12],
#             [14, 16, 18]])
matrix_a - matrix_a
#输出:matrix([[0, 0, 0],
#             [0, 0, 0],
#             [0, 0, 0]])

3. 矩阵乘 (矩阵B.dot(矩阵A)),要求矩阵B列数与矩阵A行数相同,结果为B行,A列数组。

a = np.arange(8).reshape(2,4) # 生成一个2行4列的二维数组
matrix_a = np.matrix(a)
#矩阵a结构如下:
matrix([[0, 1, 2, 3],
        [4, 5, 6, 7]])
b = np.arange(6).reshape(3,2) # 生成一个2行4列的二维数组
matrix_b = np.matrix(b)
#矩阵b结构如下:
matrix([[0, 1],
        [2, 3],
        [4, 5]])
matrix_b.dot(matrix_a)
#输出如下
matrix([[ 4,  5,  6,  7],
        [12, 17, 22, 27],
        [20, 29, 38, 47]])

http://www.kler.cn/news/290416.html

相关文章:

  • zdppy_cache缓存框架升级,支持用户级别的缓存隔离,支持超级管理员管理普通用户的缓存
  • 【MySql】面试问答:在使用mysql时,遇到分页查询慢的情况怎么处理?
  • 观测云核心技术解密:eBPF Tracing 实现原理
  • Java项目:137 springboot基于springboot的智能家居系统
  • 1. 深度学习基础:从神经网络到深度学习
  • CSS系列之浮动清除clear(三)
  • ztree搜索结果高亮变颜色(非highlight属性)
  • upload文件上传靶场
  • 在react中用three.js 渲染模型 在上面创建标签
  • 传统CV算法——基于opencv的答题卡识别判卷系统
  • 【大数据】Java与Python的无缝对接:探讨Java调用Python的方法与原理
  • <数据集>车辆识别数据集<目标检测>
  • 你必须知道的C语言问题(8)
  • Go 中间件学习
  • 【CanMV K230】边缘检测
  • 羊大师:白露养生经,羊奶不可少
  • docker实战基础一 (Docker基础命令)
  • 【云原生】Helm来管理Kubernetes集群的详细使用方法与综合应用实战
  • C++实现简易俄罗斯方块小游戏
  • Apache SeaTunnel Zeta 引擎源码解析(一)Server端的初始化
  • 心觉:如何填平想象和愿望之间的鸿沟?
  • Docker设置socks5代理
  • 大模型超详细解读汇总
  • 一个“改造”的工厂背后:中国电商的AI重构
  • 赛码网牛客在acm模式下利用node.js处理多行输入方法
  • 视频结构化从入门到精通——图像算法类型介绍
  • LuaJit分析(三)luajit字节码文件格式
  • 【C++】string的模拟实现
  • 1119 Pre- and Post-order Traversals
  • Django学习(二)