Python数据分析——numpy基础简介
前言
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
作者:基因学苑
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基础简介的更多相关文章
- python数据分析 Numpy基础 数组和矢量计算
NumPy(Numerical Python的简称)是Python数值计算最重要的基础包.大多数提供科学计算的包都是用NumPy的数组作为构建基础. NumPy的部分功能如下: ndarray,一个具 ...
- 利用Python进行数据分析——Numpy基础:数组和矢量计算
利用Python进行数据分析--Numpy基础:数组和矢量计算 ndarry,一个具有矢量运算和复杂广播能力快速节省空间的多维数组 对整组数据进行快速运算的标准数学函数,无需for-loop 用于读写 ...
- Python数据分析-Numpy数值计算
Numpy介绍: NumPy是高性能科学计算和数据分析的基础包.它是pandas等其他各种工具的基础. NumPy的主要功能: 1)ndarray,一个多维数组结构,高效且节省空间 2)无需循环对整组 ...
- [转]python与numpy基础
来源于:https://github.com/HanXiaoyang/python-and-numpy-tutorial/blob/master/python-numpy-tutorial.ipynb ...
- 利用python进行数据分析--numpy基础
随书练习,第四章 NumPy基础:数组和矢量运算 # coding: utf-8 # In[1]: # 加注释的三个方法1.用一对"""括起来要注释的代码块. # 2. ...
- Python数据分析Numpy库方法简介(一)
Numpy功能简介: 1.官网:www.numpy.org 2.特点:(1)高效的多维矩阵/数组; (2);复杂的广播功能 (3):有大量的内置数学统计函数 矩阵(多维数组): 一维数组: ([ 值 ...
- Python数据分析numpy库
1.简介 Numpy库是进行数据分析的基础库,panda库就是基于Numpy库的,在计算多维数组与大型数组方面使用最广,还提供多个函数操作起来效率也高 2.Numpy库的安装 linux(Ubuntu ...
- Python中NumPy基础使用
Python发展至今,已经有越来越多的人使用python进行科学技术,NumPY是python中的一款高性能科学计算和数据分析的基础包. ndarray ndarray(以下简称数组)是numpy的数 ...
- python数据分析Numpy(二)
Numpy (Numerical Python) 高性能科学计算和数据分析的基础包: ndarray,多维数组(矩阵),具有矢量运算能力,快速.节省空间: 矩阵运算,无需循环,可以完成类似Matlab ...
随机推荐
- vue开发搭建(npm安装 + vue脚手架安装)
一.概念 1.npm: Nodejs下的包管理器. 2.webpack: 它主要的用途是通过CommonJS的语法,把所有浏览器端需要发布的静态资源,做相应的准备,比如资源的合并和打包. 3.vue ...
- java 虚拟机指令重新排序
指令重排序是JVM为了优化指令,提高程序运行效率,在不影响单线程程序执行结果的前提下,尽可能地提高并行度.编译器.处理器也遵循这样一个目标.注意是单线程.多线程的情况下指令重排序就会给程序员带来问题. ...
- React实战教程之从零开始手把手教你使用 React 最新特性Hooks API 打造一款计算机知识测验App
项目演示地址 项目演示地址 项目代码结构 前言 React 框架的优雅不言而喻,组件化的编程思想使得React框架开发的项目代码简洁,易懂,但早期 React 类组件的写法略显繁琐.React Hoo ...
- java基础-循环标签
outer: for innter: for break outer//跳出整个循环: continue outer//结束本次外循环的循环 break inner; continute inner; ...
- VulnHub PowerGrid 1.0.1靶机渗透
本文首发于微信公众号:VulnHub PowerGrid 1.0.1靶机渗透,未经授权,禁止转载. 难度评级:☆☆☆☆☆官网地址:https://download.vulnhub.com/power ...
- 设计模式--Builder生成器模式
如果文章中哪里有问题,希望各位大哥大姐指出,小弟十分感激. 正文 什么是生成器模式? 生成器模式就是把生产对象的过程进一步抽取.细化.独立.以往我们生产对象,可能就是在一个小作坊里面从头做到尾.现在用 ...
- 用Visual C++创建WPF项目的三种主要方法
用Visual C++创建WPF项目的三种主要方法 The problem with using XAML from C++ Because C++ doesn't support partial c ...
- webpack入门进阶(1)
1.webpack应用实例 1.1.快速上手 初始化项目 mkdir webpack-demo cd webpack-demo npm init -y 安装webpack npm i webpack@ ...
- Visual C++线程同步技术剖析:临界区,时间,信号量,互斥量
使线程同步 在程序中使用多线程时,一般很少有多个线程能在其生命期内进行完全独立的操作.更多的情况是一些线程进行某些处理操作,而其他的线程必须对其处理结果进行了解.正常情况下对这种处理结果的了解应当在其 ...
- 深度学习论文翻译解析(八):Rich feature hierarchies for accurate object detection and semantic segmentation
论文标题:Rich feature hierarchies for accurate object detection and semantic segmentation 标题翻译:丰富的特征层次结构 ...