Numpy入门
标题中的英文首字母大写比较规范,但在python实际使用中均为小写。
2018年7月23日笔记
0. 学习内容:
Python科学计算库:Numpy需要掌握的知识:
1.Numpy简介;2.Numpy程序包;3.简单的Numpy程序;4.为什么使用Numpy;
5.Numpy是什么;6.Numpy数据溢出;
1. Numpy简介
Numpy是python语言中的科学计算库。
下文主要介绍数据科学工具包Numpy的基本用法,内容包括:
1.Numpy的ndarray多维数组创建
2.Numpy的ndarray多维数组索引切片访问
3.Numpy的ndarray多维数组的组合分割
2. Numpy程序包
集成开发环境为Jupyter notebook
语言及其版本为python3.6
安装numpy在cmd中运行命令:pip install numpy,如果电脑安装了最新版的anaconda,则自带jupyter notebook和numpy库。
集成开发环境如下图所示:
3.简单的Numpy程序
两个一维矩阵做加法
matrix1 = [0,1,4]
matrix2 = [0,1,8]
matrix3 = [0,2,12]
#使用python原有的列表和推导式 matrix1 = [0,1,4] matrix2 = [0,1,8] matrix3 = [a+b for a,b in zip(matrix1,matrix2)] print(matrix3,type(matrix3)) #使用numpy库计算 import numpy matrix1 = numpy.arange(3) ** 2 matrix2 = numpy.arange(3) ** 3 matrix3 = matrix1 + matrix2 print(matrix3,type(matrix3))
代码及其运行结果如下图所示:
4.为什么使用Numpy
原因有以下3点:
1.对于同样的数值计算任务,由于Numpy能够直接对数组和矩阵进行操作,可以省略很多循环语句使用Numpy要比直接编写Python代码便捷得多;
2.Numpy中数组的存储效率和输入输出性能均远远优于Python中等价的数据结构;
3.Numpy的大部分代码都是用C语言写的,这使得Numpy比纯Python代码高效得多。
5.Numpy是什么
Numpy的全名为Numeric Python,是一个开源的科学计算库,它包括:
1.一个强大的N维数组对象ndarray;2.比较成熟的函数库;
3.用于整合C/C++和Fortran代码的工具包;4.实用的线性代数、傅里叶变换和随机生成函数。
Numpy支持高维度数组计算和矩阵计算,此外也针对了数组提供了大量的科学函数库。
6.Numpy数据溢出
import numpy as np matrix = np.arange(1292) ** 3 print(matrix.dtype) print(matrix[-3:]) print(2 ** 32 - 1291 ** 3)
代码及其运行结果如下图:
从上面一段代码可以看出:1.np.arange方法产生的一个ndarray对象,对象中的元素默认为int32类型。
- 2^31 - 1的值为2147483647,如果int32类型超过这个值则算越界,越界后所得值为负数。
- 越界所得负数的绝对值 + 原本值 = 2 ** 32。
练习
利用Numpy实现两个向量相乘的结果
有两种解答方法:1.利用np.dot方法,需要2个参数,1个参数数据类型为ndarray,长度要相同。
2.利用ndarray对象的dot方法,需要1个参数,参数数据类型为ndarray,长度要相同。
下面代码中有两种解答方法的示例。
import numpy as np matrix1 = np.arange(10) print(matrix1) matrix2 = np.arange(10,20) print(matrix2) print(np.dot(matrix1,matrix2)) print(matrix1.dot(matrix2))

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Spring for Apache Kafka实战
背景介绍 Kafka是一个分布式的、可分区的、可复制的消息系统,在现在的互联网公司,应用广泛,在我们公司在主要运用在定时推送业务,批量数据处理,日志上传等方面,我发现网上大部分博客,在使用上还只是对Apache 官方提供的client,进行运用开发,在这里推荐使用 Spring for Apache Kafka(简称spring-kafka) ,更新维护稳定,方法众多,并且强大,现已加入Spring豪华大礼包。 大坑预警 spring-kafka实际上也是对apache的kafka-client进行了包装和开发,所以使用的时候一定注意,你引入的spring-kafka里封装的kafka-client的版本要和服务器上的kafka服务器版本要对应,不然就会产生问题,比如消费失败。官网上在首页就贴出了SpringKafka和kafka-client版本(它的版本号要和kafka服务器的版本保持一致)的对应关系Spring for Apache Kafka 生产者的使用 spring-kafka对于生产者提供了两个模板类,分别是 KafkaTemplate :包装了一个生产者,并提供方便的方...
- 下一篇
成为一名Java高级架构师到底需要学习什么?
Java架构师,应该算是一些Java程序员们的一个职业目标了吧。很多码农码了五六年的代码也没能成为架构师。那成为Java架构师要掌握哪些技术呢,总体来说呢,有两方面,一个是基础技术,另一个就是组织能力和提出解决方案能力了。我就跟大家来简要地说说吧。 如果你是想成为Java架构师,那么你首先要是一个Java高级攻城狮。也就是说,基础必须牢固,对Java的了解全面而且深入。 熟练使用各种框架,并知道它们实现的原理。 Jvm虚拟机原理、调优操作,懂得jvm能让你写出性能更好的代码; 池技术也是要掌握的,对象池、连接池、线程池都要会; Java反射技术,写框架必备的技术; Java各种集合对象的实现原理,了解这些可以让你在解决问题时选择合适的数据结构,高效地解决问题,写出代码; nio,注意“直接内存”的特点,使用场景。 还没完,除了上边那些,你还要熟练使用各种数据结构和算法,数组、哈希、链表、排序树等等都是;熟练使用Linux操作系统,也是必备的;熟悉各种协议,比如tcp协议,创建连接三次握手和断开连接四次握手的整个过程,不了解就没法对高并发网络应用做优化,http协议,session和co...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- 2048小游戏-低调大师作品
- CentOS8编译安装MySQL8.0.19