返回顶部
首页 > 资讯 > 后端开发 > Python >Python基础之数组和向量化计算总结
  • 265
分享到

Python基础之数组和向量化计算总结

数组基础Python 2023-01-31 00:01:10 265人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

一、多维数组 1、生成ndarray     (array函数)    .np.array()生成多维数组 例如:import numpy as npdata1=[6,7.5,8,0,1]     #创建简单的列表print(data1)

一、多维数组

1、生成ndarray     (array函数)   

.np.array()生成多维数组

例如:import numpy as np
data1=[6,7.5,8,0,1]     #创建简单的列表
print(data1)
arr1=np.array(data1)    #将列表创建数组
print(arr1)

2、ndarry的数据类型

(1)dtype()   #获取数组元素类型(浮点数、复数、整数等)

data=np.random.randn(2,3)   #生成随机数组
print(data)
print(data.shape)    #返回数组的形状
print(data.dtype)   

(2)转化数组的数据类型:astype()   astype生成一个新的数组

import numpy as np

a=np.array([0.11,2.2,3])

print(a)

b=a.astype(np.int)

print(b)          补充:python中type 获取数据类型

3、numpy数组算术

(1)逐元素操作

arr=np.array([[1.,2.,3.],[4.,5.,6.]])

print(arr)

print(arr*arr)

4、索引与切片

(1)基础索引与切片

arr=np.arange(10)
print(arr)
print(arr[5:8])
arr[5:8]=12
print(arr)

(2)布尔索引

names=np.array(["Bob","Joe","Will","Bob","Will","Joe","Joe",])

print(names=="Bob")   #结果:[ True False False  True False False False]

5、数组转置与换轴

(1)arr.T    #数组转置

补充:简单的一维和二维数组的转置就是线性代数中的行列相互交换。而对于高维数组的转置:

import numpy as np

a = np.arange(12).reshape(2, 2, 3)  

#创建一个三维矩阵,由2个2*3的矩阵块组成

print(a)    #结果为:

[[[ 0  1  2]      #运行结果:其中每个元素都有其唯一的坐标(x,y,z)例如:0的标为(0,0,0),1的坐标为:(0,1,0)........11的坐标为(1,1,2)

   [ 3  4  5]]

   [[ 6  7  8]

   [ 9 10 11]]]

Print(a.T)   #Output为:数组变为了3个2*2的矩阵了。而各元素的坐标变为:0:(0,0,0),1:(1,0,0),........11:(2,1,1)每个元素坐标的,其实该T操作等同于后面两种方法a.transpose(2,1,0)中x轴和z轴的交换以及a.swapaxes(0,2)

[[[ 0  6]

  [ 3  9]]

 [[ 1  7]

  [ 4 10]]

 [[ 2  8]

  [ 5 11]]]

 (2)内积:np.dot()     x.dot()等价于np.dot(x,y)

arr=np.random.randn(6,3)
print(arr)
print(arr.T)
print(np.dot(arr.T,arr))

(3)换轴:transpose()

对于高维数组,transpose()方法的参数需要得到一个由轴编号(轴编号自0开始)序列构成的元组才能对轴进行转置,只需要调换轴对应数字参数的顺序就可以将数组进行轴的变换。

arr=np.arrange(16).reshape((2,2,6))

arr.transpose((1,0,2))          #将第二个轴和第一个轴变换位置

运行结果为:[[[ 0  1  2  3]

[ 8  9 10 11]]

[[ 4  5  6  7]

              [12 13 14 15]]]

Swapaxes方法,直接进行轴的交换

二、函数

1、一元通用函数

(1)平方根  sqrt()

arr=np.arange(10)
print(arr)
print(np.sqrt(arr))

(2)自然指数值  exp()

print(np.exp(arr))    

(3)返回数组的小数部分和整数部分  modf()

arr=np.random.randn(7)*5
print(arr)
remainder,whole_part=np.modf(arr)
print(remainder)
print(whole_part)

2、二元通用函数

(1)最大值  maximum()

x=np.random.randn(8)
print(x)
y=np.random.randn(8)
print(y)
print(np.maximum(x,y))

3、矩阵分解的标准函数集                  ???

(1)、numpy.linalg()

(1.1)、方阵的逆矩阵  inv()

(1.2)、QR分解  qr()

from numpy.linalg import inv,qr
x=np.random.randn(5,5)
print(x)
mat=x.T.dot(x) #内积
print(inv(mat))  #求逆
q,r=qr(mat)
print(r)

4、随机数生成器

numpy.random()

注意:产生随机数random.randn()和random.rand(n)的区别random.randn(n)是从标准正态分布中返回一个或者多个样本值,random.rand(n,m)表示由位于(0,1)中的随机数填充的n*m的矩阵。

三、数组编程

1、将条件逻辑作为数组操作  where()

xarr=np.array([1.1,1.2,1.3,1.4,1.5])
yarr=np.array([2.1,2.2,2.3,2.4,2.5])
cond=np.array([True,False,True,True,False])      #是否是x的值
result=np.where(cond,xarr,yarr)
print(result)               #result([1.1,2.2,1.3,1.4,2.5])

2、数学和统计方法  mean()平均值、sum()求和、cumsum()#从0元素来累计和、cumprod()  # 从1元素来累计积         ???

arr=np.random.randn(5,4)
print(arr)
print(arr.mean())      #取总均值
print(np.mean(arr))
print(arr.mean(axis=1))    #按列数取均值
print(arr.mean(1))

3、布尔值数组的方法   any()   all()    ???

print(arr.sum(0))         #从0元素来是加总
arr=np.array([[0,1,2],[3,4,5],[6,7,8]])
print(arr)
print(arr.cumsum(axis=0))    #axis=0行数加总   
print(arr.cumprod(axis=1))     #axis=1列数加总
bools=np.array([False,False,True,False])
print(bools.any())   #至少有一个
print(bools.all())     #全部都是

4、计算唯一值并排序:unique()

ints=np.array([3,3,3,2,2,1,1,4,4])
print(np.unique(ints))   #唯一值    结果:[1 2 3 4]

--结束END--

本文标题: Python基础之数组和向量化计算总结

本文链接: https://lsjlt.com/news/181652.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python基础之数组和向量化计算总结
    一、多维数组 1、生成ndarray     (array函数)    .np.array()生成多维数组 例如:import numpy as npdata1=[6,7.5,8,0,1]     #创建简单的列表print(data1)...
    99+
    2023-01-31
    数组 基础 Python
  • 计算机组成原理——基础入门总结(二)
    上一期的路径:基础入门总结(一) 目录 一.输入输出系统和IO控制方式 二.存储系统的基本概念 三.cache的基本概念和原理 四.CPU的功能和基本结构 五.总线概述 一.输入输出系统和IO控制方式 IO设备又可以被统一称为外部设备...
    99+
    2023-10-12
    嵌入式硬件 硬件工程
  • python中numpy基础学习及进行数组和矢量计算
    前言 在python 中有时候我们用数组操作数据可以极大的提升数据的处理效率,类似于R的向量化操作,是的数据的操作趋于简单化,在python 中是使用numpy模块可以进行数组和矢量计算。 下面来看下简单的...
    99+
    2022-06-04
    数组 矢量 基础
  • Python基础之元组与文件知识总结
    目录大纲Python文件类型及汇总一、元组二、文件三、pickle存储和读取python对象四、类型汇总大纲 Python文件类型及汇总 一、元组 1 特征 1.任意对象的有序集...
    99+
    2024-04-02
  • Python基础之变量的相关知识总结
    变量全都是引用 跟其他编程语言不同,Python的变量不是盒子,不会存储数据,它们只是引用,就像标签一样,贴在对象上面。 比如: >>> a = [1, 2, ...
    99+
    2024-04-02
  • Java基础之数组超详细知识总结
    目录一、一维数组二、二维数组三、总结一、一维数组 1、Java语言中的数组是一种 引用数据类型。不属于基本数据类型。数组的父类是 Object。 2、数组实际上是一个容器,可以同时容...
    99+
    2024-04-02
  • Python基础之函数嵌套知识总结
    内部/内嵌函数 1、定义:在一个函数的函数体内使用关键字def关键字定义一个新的函数,这个新的函数就叫做内部/内嵌函数。 2、注意点:内部函数的整个函数体都在外部函数的作用域内,如...
    99+
    2024-04-02
  • java8 如何实现分组计算数量和计算总数
    java8分组计算数量和计算总数 package com.pig4cloud.pigx.admin.api.vo; import lombok.Builder; import l...
    99+
    2024-04-02
  • java8怎么实现分组计算数量和计算总数
    本篇内容介绍了“java8怎么实现分组计算数量和计算总数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!java8分组计算数量和计算总数pac...
    99+
    2023-06-20
  • Java基础入门总结之序列化和反序列化
    目录基本概念序列化反序列化序列化和反序列化总结自定义序列化策略Externalizabletransient静态变量序列化ID破坏单例总结基本概念 Java中创建对象时,一旦程序终止...
    99+
    2024-04-02
  • Python基础之注释,算数运算符,变量
    Python的注释 注释的作用:用自己熟悉的语言,对某些代码进行标注说明,增强程序的可读性; 在python解释器解释代码的过程中,凡是#右边的,解释器都直接跳过这一行; 注释的分类 单行注释 # 这里是注释 print("hello w...
    99+
    2023-01-31
    注释 变量 运算符
  • java基础之数组常用操作总结(必看篇)
    常用的对数组进行的操作1、求数组中最大值,最小值思路:假设下标为0的元素是最大值,遍历数组,依次跟max进行比较,如果有元素比这个max还大,则把这个值赋给max。最小值同样public class TestArray{ public s...
    99+
    2023-05-31
    java 数组 常用操作
  • python基础学习之递归函数知识总结
    目录一、递归函数使用注意点二、递归的效率问题三、递归函数引入四、递归的深度五、通过缓存解决递归限制六、递归函数使用示例一、递归函数使用注意点 递归函数一定要编写终止条件,否则将产生无...
    99+
    2024-04-02
  • Python基础之数据类型相关知识总结
    1、字符串 (1)概念 字符串英文名string,简称str。 字符串就是由一个个字符连接起来的组合, 你平时所见的字母、数字、汉字、符号都是字符。 字符串可以用...
    99+
    2024-04-02
  • python基础之变量和数据类型
    目录变量和数据类型Python中变量的命名规则总结变量和数据类型 赋值不需要指定类型,如何定义变量 # 定义 规则 变量名=数据 a=10 #python不声明...
    99+
    2024-04-02
  • python基础之函数和面向对象详解
    目录函数函数参数变量作用域内嵌函数和闭包lambda 表达式面向对象三大特性类、类对象 和 实例对象类属性 和 对象属性私有魔法方法基本的魔法方法算术运算符属性访问 描述符...
    99+
    2024-04-02
  • Python必备基础之闭包和装饰器知识总结
    目录一、闭包1.1 三要素 1.2 语法1.3 优点1.4 缺点1.5 作用二、装饰器 Decorator2.1 定义2.2 语法2.3 本质2.4 装饰器链一、闭包 1.1 三要素...
    99+
    2024-04-02
  • 基础的十进制按位运算总结与在Python中的计算示例
    与运算 & 举例: 3&5 解法:3的二进制补码是 11, 5的是101, 3&5也就是011&101,先看百位(其实不是百位,这样做只是便于理解) 一个...
    99+
    2022-06-04
    示例 基础 十进制按位
  • Java面向对象基础知识之数组和链表
    数组的优点: 随机访问性强 查找速度快 数组要求是一块连续的内存空间来存储,这就要求在物理上这一片空间是连续的,每个元素都有指定的索引in...
    99+
    2024-04-02
  • Python可视化总结之matplotlib.pyplot基本参数详解
    本篇文章给大家带来了关于Python的相关知识,其中主要整理了matplotlib.pyplot绘图的基本参数的相关问题,包括了figure、xlabel、grid等等内容,下面一起来看一下,希望对大家有帮助。【相关推荐:Python3视频...
    99+
    2022-06-29
    python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作