Numpy的认识

    一个用python实现的科学计算包括:1、一个强大的N维数组对象Array;2、比较成熟的(广播)函数库;3、用于整合C/C++和Fortran代码的工具包;4、实用的线性代数、傅里叶变换和随机数生成函数。numpy和稀疏矩阵运算包scipy配合使用更加方便。

    NumPy(Numeric Python)提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。专为进行严格的数字处理而产生。多为很多大型金融公司使用,以及核心的科学计算组织如:Lawrence Livermore,NASA用其处理一些本来使用C++,Fortran或Matlab等所做的任务。

基础

NumPy的主要对象是同构多维数组。它是一个元素表(通常是数字),都是相同类型的,由正整数元组索引。在NumPy中,维度称为轴线.

NumPy的数组类称为ndarray。它也是通过别名知道的。array。请注意numpy.array与标准Python库类不同array.array,它只处理一维数组,并提供较少的功能。的更重要的属性。

一 、数组的轴数(尺寸)。

ndarray.shape:  矩阵的大小

ndarray.size:  矩阵里元素的个数

type(ndarray): 矩阵的类型

import numpy as npa = np.arange(15).reshape(3, 5)print(a)

[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]

print(a.shape)(3, 5)
print(type(a))<class 'numpy.ndarray'>

二、构建特定的矩阵:

1、单位矩阵:

np.ones(shape=(a,b,c),dtype=None,order='C')

返回给定形状和类型的新数组,填充 1 。

shape:代表数据形状,是个元组,如果shape=5代表创建一个五个元素的一维数组,shape=(3,4) 代表创建一个3*4的数组,即a*b表示数组,c表示几个元素

dtype:数据类型,可选,数组所需的数据类型,例如dtype='int'。默认是 float64。

order:{'C','F'},可选是否以内存中的C或Fortran连续(行或列)顺序存储多维数据。

import numpy as npprint(np.ones(shape = (2,1,3),dtype='int',order= 'C'))

[[[1 1 1]]

[[1 1 1]]]

2、零矩阵

np.zeros(shape =(a,b,c),dtype=None,order='C')

返回给定形状和类型的新数组,填充 0 。

print(np.zeros(shape = (2,1,3),dtype='int',order= 'C'))

[[[0 0 0]]

[[0 0 0]]]

3、对角矩阵p

np.eye(N,M = None,k = 0,dtype = <type'float'>,order ='C' )

N:int -- 输出中的行数。M:int,可选 -- 输出中的列数。如果无,默认为Ñ

k:int,可选 -- 对角线索引:0(默认值)是指主对角线,正值是指上对角线,而负值是指向下对角线。

import numpy as npprint(np.eye(3))

[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]

4、随机矩阵

print(np.empty((2,3)))

[[5.11798224e-307 3.44897992e-307 1.29060531e-306]
[1.60218220e-306 1.24610927e-306 4.45064002e-308]]

5、0-1随机矩阵

print(np.random.rand(2, 2))

[[0.19656695 0.29067155]
[0.52709383 0.46490215]]

6、范围矩阵

np.random.uniform(low=0.0, high=1.0, size=None)

生出size个符合均分布的浮点数,取值范围为[low, high),默认取值范围为[0, 1.0)

print(np.random.uniform(1, 2,size=(2,3)))

[[1.64545472 1.07505418 1.87356361]
[1.98143839 1.6130207 1.80829523]]

三、创建数字序列

np.arange(start,end,step)

序列范围:[start(开始),end(结束))

print(np.arange(2,10,2))[2 4 6 8]
print(np.arange(3,13,4))[ 3  7 11]四、基本运算同纬度的矩阵才能运算

a = np.arange(4)
a

array([0, 1, 2, 3])

b = np.array([4, 5, 6, 7])
b

array([4, 5, 6, 7]) 

a+b
array([ 4,  6,  8, 10])a-b
array([-4, -4, -4, -4])a*b
array([ 0,  5, 12, 21])a/b
array([0.        , 0.2       , 0.33333333, 0.42857143])a**2
array([0, 1, 4, 9], dtype=int32)

五、切片

c = np.arange(10)
c

array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])c[1:6]
array([1, 2, 3, 4, 5])c[1:6:2]
array([1, 3, 5])c[::-1]
array([9, 8, 7, 6, 5, 4, 3, 2, 1, 0])


转载于:https://www.cnblogs.com/lwx666/p/10541764.html

python_numpy的基础相关推荐

  1. java入门 慕路径,Java入门基础知识总结学习教程大全【必看经典】

    类型的表达式,是循环条件,表达式3是党执行了一遍循环之后,修改控制循环的变量值. ??? for语句的执行过程是这样的:首先计算表达式1,完成必要的初始化工作:然后判断表达式2的值,如果表达式的值为t ...

  2. 提交表单自动刷新_Web自动化测试:元素的基础操作和浏览器基础操作

    上一节,我们了解了如何定位元素,其实也有涉及对于元素的操作,这一节我们就详细的介绍一下对于元素的操作和对于浏览器的一些操作 一.对于元素的基础操作: clear():清除输入框内的文本 send_ke ...

  3. java mybatis基础

    java mybatis基础 1.1 什么是mybatis? mybatis是一个优秀的持久层框架. 避免几乎所有的JDBC代码和手动设置参数以及获取结果集的过程. 可以使用简单的xml或者注解来配置 ...

  4. 【J2SE】学习基础

    Java基础 语法基础 OO Exception Array 基础类 I/O Stream Collection/Generic Thread TCP/UDP GUI Meta Data Regula ...

  5. 【Linux系统】基础总结

    我不太清楚运维部门具体是做什么的,就接触过一点点运维部门! 也就是是知道他们负责管理服务器,管理网络,管理项目部署 偶尔自己需要部署,不得不接触一些linux命令.简单总结一些基础 linux系统发展 ...

  6. 【Java 2 Platform Enterprise Edition】基础

    问题1:为什么java是无关平台? 你之前用C或者C++写的源代码,编译好后,换一种操作系统,可能就执行不了了.因为新的操作系统不识别,你需要修改你的源码,并在新的操作系统上重新编译才能运行,比如Wi ...

  7. SpringCloud Alibaba微服务实战(一) - 基础环境搭建

    说在前面 Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案.此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来 ...

  8. Redis概述和基础

    Redis 1.NoSQL NoSQL = Not Only SQL(不仅仅是SQL) 泛指非关系型数据库的,随着web2.0互联网的诞生!传统的关系型数据库很难对付web2.0时代!尤其是超大规模的 ...

  9. pass基础架构分析

    pass基础架构分析 Relay 和 TVM IR,包含一系列优化passes,可提高模型的性能指标,如平均推理,内存占用,或特定设备的功耗.有一套标准优化,及特定机器学习的优化,包括常量折叠,死代码 ...

  10. LLVM编译器基础架构与DragonEgg示例

    LLVM编译器基础架构与DragonEgg示例 LLVM 概述 LLVM 项目是模块化和可重用的编译器和工具链技术的集合.LLVM 与传统的虚拟机几乎没有关系."LLVM"这个名字 ...

最新文章

  1. LeetCode--485
  2. 百度:土豪投机移动互联
  3. CSMAR database query sample
  4. php curl安装检查,如何判断php的curl是否已安装
  5. yapi 事件创建、修改等接口事件监听
  6. linux实现自己的write函数,Linux 内核源码阅读 - write 系统调用的实现
  7. 在Eclipse中配置NDK自动编译环境builders
  8. PBR理论基础2:光照、材质与微面元理论
  9. bios uefi legacy_安装win10用uefi还是legacy?win10 uefi引导修复教程
  10. c语言printf()输出格式大全(转载)
  11. 博主自我介绍、当前已经成立的技术分局【专栏必读】
  12. 苹果手机更改照片大小kb_iPhone调整照片大小方法教程 无需第三方软件
  13. 麒麟桌面系统添加字体
  14. 关于qt 开发的灵异事件
  15. 向日葵无法linux桌面壁纸,Ubuntu 向日葵被远控无法显示图形化界面的解决方案
  16. 传说之下三重审判用计算机怎么弹,传说之下三重审判无限血
  17. 鸿蒙系统碰一碰,华为正式发布鸿蒙手机操作系统 “碰一碰”就可实现设备互联...
  18. 支付宝 android 指纹支付,指纹支付教程放出!支付宝支持指纹支付!
  19. SimpleMind Pro for Mac(思维导图)中文完整版
  20. [附源码]计算机毕业设计Python基于微信小程序的网络办公系统(程序+源码+LW文档)

热门文章

  1. python数组堆叠_数组操作 -拼接与堆叠数组
  2. pandas 字符串切片后保存_Pandas时间序列基础详解(转换,索引,切片)
  3. [渝粤教育] 陕西科技大学 食品营养安全与健康 参考 资料
  4. Metasploit工具的使用
  5. [简单]1.宝石和石头
  6. JAVA-初步认识-第八章-数组工具类中静态的使用
  7. Hadoop 101: Programming MapReduce with Native Libraries, Hive, Pig, and Cascading
  8. 题目1012:畅通工程(并查集)
  9. 如何使用WordPress搭建网站
  10. SAM4E单片机之旅——11、UART之PDC收发