前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

作者:基因学苑

NumPy(Numerical Python的简称)是高性能科学计算和数据分析的基础包。NumPy最重要的一个特点就是其N维数组对象(即ndarray),该对象是一个快速而灵活的大数据集容器。新手可能不理解这句话的含义,这个需要慢慢去理解 。总之,知道numpy是python数据分析最重要的基础包就可以了。有了numpy才可以利用这种数组对整块数据执行一些数学运算,比python自带的数组以及元组效率更高,其语法跟变量元素之间的运算一样,无需进行循环操作。


为什么需要numpy

python默认进行多个数据的计算,是使用循环,如果循环次数多,就非常耗时。举个简单的案例,我们要计算100000个随机数的值,如果传统编程需要写循环,用了2.2s,而使用numpy数据结构,则可以进行向量化操作,无需循环,只需要28.2ms 节约大量时间。

a=[1,2,3,4,5]
b=np.array([1,2,3,4,5])
a+1
b+1
a*10
b*10

如何生成ndarray

numpy的核心是ndarray(n-dimensional array),多维数组。所谓数据就是同一类型数据的集合,比如1000个数字构成一个数组,1000个字符也构成一个数组。numpy包含很多函数,可以将python数据结构很容易转换为numpy的ndarray。

a=[1,2,3,4,5]
b=np.array([1,2,3,4,5])
a+1
b+1
a*10
b*10

比较传统列表数组与ndarray的区别

a=[1,2,3,4,5]
b=np.array([1,2,3,4,5])
a+1
b+1
a*10
b*10

NumPy常用函数

numpy有很多函数,其中使用numpy比较多的功能是利用其生产数字,比如随机数,正太分布,等差数列等。

# 使用array创建数组:
arr = np.array([1,2,3])
arr = np.array([1,2,3],[4,5,6],[7,8,9]) # 使用arange创建数组
arr = np.arange(0,10,1)
#创建1-12的3行4列的二维数组 arr = np.arange(12).reshape(3,4)
# random生成随机数
#生成随机数种子
np.random.seed(1234)
#randn 产生正太分布样本
np.random.randn(1000)
#随机生成整数数据集
np.random.randint(size=1000,low=1,high=1000)

数学计算函数

numpy内置了很多计算的函数,可以进行很多数学,输入数据是一个ndarray即可。

# 使用array创建数组
#x是一个包含1000个随机正整数的集合,取值范围从1~1000。
x=np.random.randint(size=1000,low=1,high=1000)
#输出x
x
#进行集合的求和,平均值,方差,标准差等计算
np.sum(x)
np.mean(x)
np.var(x)
np.std(x)
np.min(x)
np.max(x)
np.argmin(x)
np.argmax(x)
np.cumsum(x)
np.cumprod(x)

计算机性能测试

下面做一个有意思的计算机性能测试,随机生成一个大的数据集,看你的计算机能计算多少位,这个和内存有关系。

#生成100万个数值进行计算
x=np.random.randint(size=1000000,low=1,high=1000)
np.sum(x)
#生成1000万个数值进行计算
x=np.random.randint(size=10000000,low=1,high=1000)
np.sum(x)
#生成1亿个数值进行计算
x=np.random.randint(size=100000000,low=1,high=1000)
np.sum(x)
#如果觉得自己计算机性能不错,可以计算挑战

Python数据分析——numpy基础简介的更多相关文章

  1. python数据分析 Numpy基础 数组和矢量计算

    NumPy(Numerical Python的简称)是Python数值计算最重要的基础包.大多数提供科学计算的包都是用NumPy的数组作为构建基础. NumPy的部分功能如下: ndarray,一个具 ...

  2. 利用Python进行数据分析——Numpy基础:数组和矢量计算

    利用Python进行数据分析--Numpy基础:数组和矢量计算 ndarry,一个具有矢量运算和复杂广播能力快速节省空间的多维数组 对整组数据进行快速运算的标准数学函数,无需for-loop 用于读写 ...

  3. Python数据分析-Numpy数值计算

    Numpy介绍: NumPy是高性能科学计算和数据分析的基础包.它是pandas等其他各种工具的基础. NumPy的主要功能: 1)ndarray,一个多维数组结构,高效且节省空间 2)无需循环对整组 ...

  4. [转]python与numpy基础

    来源于:https://github.com/HanXiaoyang/python-and-numpy-tutorial/blob/master/python-numpy-tutorial.ipynb ...

  5. 利用python进行数据分析--numpy基础

    随书练习,第四章  NumPy基础:数组和矢量运算 # coding: utf-8 # In[1]: # 加注释的三个方法1.用一对"""括起来要注释的代码块. # 2. ...

  6. Python数据分析Numpy库方法简介(一)

    Numpy功能简介: 1.官网:www.numpy.org 2.特点:(1)高效的多维矩阵/数组; (2);复杂的广播功能 (3):有大量的内置数学统计函数 矩阵(多维数组): 一维数组:  ([ 值 ...

  7. Python数据分析numpy库

    1.简介 Numpy库是进行数据分析的基础库,panda库就是基于Numpy库的,在计算多维数组与大型数组方面使用最广,还提供多个函数操作起来效率也高 2.Numpy库的安装 linux(Ubuntu ...

  8. Python中NumPy基础使用

    Python发展至今,已经有越来越多的人使用python进行科学技术,NumPY是python中的一款高性能科学计算和数据分析的基础包. ndarray ndarray(以下简称数组)是numpy的数 ...

  9. python数据分析Numpy(二)

    Numpy (Numerical Python) 高性能科学计算和数据分析的基础包: ndarray,多维数组(矩阵),具有矢量运算能力,快速.节省空间: 矩阵运算,无需循环,可以完成类似Matlab ...

随机推荐

  1. 微信小程序-APP生命周期与运行机制

    QQ讨论群:785071190 开发微信小程序之前需要先了解微信小程序运行机制以及其生命周期,小程序APP生命周期需要先从app.js这个文件开始. 阅读过"微信小程序-代码构成" ...

  2. 7-3 树的同构(25 分) JAVA

    给定两棵树T1和T2.如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的. 例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A.B.G的左右孩子互换后,就得到另外一棵树 ...

  3. 面试官:你精通多少种语言的 Hello World?

    Hello World,是程序员入门编程语言的第一课.不论是C.C++还是Java ,我们写的第一个程序就是它了,还记得小编在大一C语言课上,花了一整节课时间才把它打印到控制台上.万事开头难啊,相信看 ...

  4. vue全家桶(2.2)

    3.3.router-link配置 3.3.1.实例 需求:实现下面效果,点击不同的菜单,显示不同的文字 核心代码:App组件 <template> <div id="ap ...

  5. IIS 发布页面后或者vs平台运行后显示“未能加载文件或程序集“WebApi”或它的某一个依赖项。试图加载格式不正确的程序。”

    一般情况下出现这样的问题是因为.dll文件不存在或者路径不正确. 但今天我遇到的情况都不在这两个内. 我确定.dll文件是存在的,路径也是正确的. 但是程序死活都是“未能加载文件或程序集“xxx”或它 ...

  6. 深入理解JVM(③)Java模块化系统

    前言 JDK9引入的Java模块化系统(Java Platform Module System ,JPMS)是 对Java技术的一次重要升级,除了像之前JAR包哪有充当代码的容器之外,还包括: 依赖其 ...

  7. 深入理解JVM(③)Java的模块化

    前言 JDK9引入的Java模块化系统(Java Platform Module System ,JPMS)是 对Java技术的一次重要升级,除了像之前JAR包那样充当代码的容器之外,还包括: 依赖其 ...

  8. 洛谷 P1991 【无线通讯网】

    这道题找到关键点那就是模板题了,代码好写哒~ 因为有S个电话,两个电话就可以连通两个块,那是不是我们就可以看做一条无消耗的边,提前连了起来.根据Kruskal的思想,我们每次加入最小的边,直到联通,由 ...

  9. 服务消费者(Feign-下)

    上一篇文章中已经讲述 Feign的基本用法,本章主要概述 FeignClient GET/POST/PUT/DELETE restful写法以及 Feign 拦截器,与配置优化方案,关闭HttpCli ...

  10. 硬刚 lodash 源码之路,_.chunk

    前置 chunk 函数内部借助其他函数实现,所以从其他函数开始,chunk 在最后. 你可能需要一些 JavaScript 基础知识才能看懂一些没有注释的细节. isObject 判断是否为 Obje ...