Numpy科学计算从放弃到入门

目录

  • 什么是Numpy
  • 一、如何创建数组
  • 二、如何访问数组
  • 三、如何做算数运算
  • 四、如何使用统计函数
  • 五、如何转置数组和反转
  • 六、如何去重、计算差集并集等集合操作
  • 七、如何生成随机数
  • 八、如何输入输出文件

什么是Numpy

Numpy是Python科学计算的基础包,不仅是python中使用最多的第三方库,还是SciPy、Pandas等数据科学的基础库。所提供的结构比Python自身的更高级、更高效。
可以说,Numpy所提供的数据结果是Python数据分析的基础。
标准的Python用列表list保存数组的值,list的元素在系统中内存是分散存储的,而Numpy的数组结构是存储在一个均匀连续的内存块中,遍历所有的元素更高效,节省了计算资源。
主要提供了以下功能:

  • 快速高效的多维数组对象的ndarray
  • 用于对数组执行元素级计算以及直接对数组执行数学运算的函数
  • 用于读写硬盘上基于数组的数据集的工具
  • 线性代数运算、傅立叶变换,以及随机数组生成
  • 用于将C、C++、Fortran代码集成到Python的工具
  • 作为算法之间传递数据的容器,对于数值型数据,Numpy数组在存储和处理数据时要比内置的Python数据结构高效得多

numpy提供了一个ndarray对象,多维数组的含义,维度称为rank(秩),每个线性的数组称为一个axes(轴)。数组是有属性的,可以通过函数shape获得数组的大小,通过dtype获得元素的属性

相关帮助文档

一、如何创建数组

  • array
    将输入数据(列表、元组、数组或其他序列类型)转换为ndarray。要么推断出dtype,要么显示指定dtype
  • asarray
    将输入转换为ndarray,如果输入本身就是一个ndarray就不再复制
    array和asarray都可以将结构数据转化为ndarray,但是主要区别就是当数据源是ndarray时,array仍然会copy出一个副本,占用新的内存,但asarray不会
  • arange
    类似内置的range,返回一个ndarray
  • linspace
    和arrange的作用一样,只是包含指定的最终值
  • zeros、zeros_like
    根据指定的形状和dtype创建一个全是9的数组。
    zeros_like以另一个数组为参数,并根据其形状和dtype创建一个全0数组

  • ones、ones_like
    根据指定的形状和dtype创建一个全是1的数组。
    ones_like以另一个数组为参数,并根据其形状和dtype创建一个全1数组
  • empty、empty_like
    类似ones和ones_like,只是产生的是全0数组
  • eye、identity
    创建一个正方的N*N单位矩阵,对角线为1,其余为0

二、如何访问数组

  • 下标索引
    arr2d=np.array([[1,2,3],[4,5,6],[7,8,9]])
    arr2d[0][2]和arr2d[0,2]是等价的
  • 切片索引
    可以一次传入多个切片,
    arr2d[:2, 1:]
  • 布尔型索引

将data中所有负值都设置为0

data[data < 0] = 0
  • 选出所有名字为“cqh”的所有行
data[names == 'cqh']
  • 整数索引
    利用整数数组进行索引
arr = np.empty((8,4))
for i in range(8):
    arr[i] = i
传入指定顺序
arr[[4,3,0,6]]
* 负数索引
arr[[-3,-5,-7]]
  • 方形索引
    使用np.ix_方法,可以将两个一维整数数组转换为一个用于选取方形区域的索引
arr = np.arange(32).reshape((8,4))

获取行[1,5,7,2],列[0,3,1,2],为

arr[np.ix_([1,5,7,2],[0,3,1,2])]

相当于执行了

arr[[1,5,7,2]][:,[0,3,1,2]]

错误方法:

arr[[1,5,7,2],[0,3,1,2]]

三、如何做算数运算

x1 = np.arange(1,11,2)
x2 = np.linspace(1,9,5)
np.add(x1, x2)
np.subtract(x1, x2)
np.multiply(x1, x2)
np.divide(x1, x2)
np.power(x1, x2)
np.remainder(x1, x2)

四、如何使用统计函数

默认axis=0代表沿着列统计,axis=1代表沿着行统计

  • amax:矩阵中的最大值
  • amin:矩阵中的最小值
  • ptp:统计最大值与最小值的差
  • percentile:统计数组的百分位数
  • median:统计中位数
  • mean:平均数
  • average:加权平均值(需要传入各个元素的权重)
  • std:标准差
  • var:方差

五、如何转置数组和反转

  • reshape
arr = np.arange(15).reshape((3,5))

  • T
arr.T

六、如何去重、计算差集并集等集合操作

  • unique(x):计算x中的唯一元素,并返回有序结果
  • intersect1d(x,y):计算x和y中的公共元素,并返回有序结果
  • union(x,y):计算x和y的并集,并返回有序结果
  • in1d(x,y):得到一个表示“x的元素是否包含在y”的布尔型数组
  • setdiff1d(x,y) 集合的差,元素在x中且不在y中
  • setxor1d(x,y) 集合的对称差,存在于一个数组中但不同时存在两个数组中的元素

七、如何生成随机数

  • rand:产生均匀分布的样本值
  • uniform:产生在[0,1]中均匀分页的样本值
  • randn:产生正态分布(平均值0,标准差1)的样本值,类似MATLAB接口
  • normal:生成标准正态分布的样本数组
  • randint:在给定的上下限范围内随机选取整数
  • seed:确定随机数生成器的种子
  • permutation:返回一个序列的随机排列
  • shuffle:对一个序列就地随机排列
  • bionmial:产生二项分布的样本值
  • beta:生产Beta分布的样本值
  • chisquare:产生卡方分布的样本值
  • gamma:产生Gamma分布的样本值

八、如何输入输出文件

以二进制格式保存到磁盘

  • np.save:保存到磁盘
  • np.savez:将多个数组保存到一个压缩文件中,加载时得到一个字典对象
  • np.load:从磁盘加载

存取文本文件

  • loadtxt:指定各种分隔符
  • savetxt:将数组写到以某种分隔符隔开的文本文件

原文地址:https://www.cnblogs.com/chenqionghe/p/12222642.html

时间: 2024-10-28 13:44:51

Numpy科学计算从放弃到入门的相关文章

python安装numpy科学计算模块

解决两个问题: (1)Import Error: No module named numpy (2)Python version 2.7 required, which was not found in the registry (1)这种错误是因为没有安装numpy科学计算库,因此需要安装此模块. 首先下载正确的exe安装文件:numpy-MKL-1.8.0.win-amd64-py2.7.exe. 接着我们双加打开安装文件,点击运行按钮 安装过程很简单,点击下一步 在第一步,如果你看到自己的

科学计算三维可视化---Mayavi入门(Mayavi库的基本元素和绘图实例)

一:Mayavi库的基本元素 1.处理图形可视化和图形操作的mlab模块 2.操作管线对象,窗口对象的api (一)mlab模块 (二)mayavi的api 二:快速绘图实例 (一)mlab.mesh的使用,快速创建绘图 >>> x = [[-1,1,1,-1,-1],[-1,1,1,-1,-1]] >>> y = [[-1,-1,-1,-1,-1],[1,1,1,1,1]] >>> z = [[1,1,-1,-1,1],[1,1,-1,-1,1]]

python numpy科学计算和数据分析的基础包

import numpy as np #创建ndarray# data1 = [6, 5, 7, 1, 3]# arrl = np.array(data1)# print(arrl)#多维列表创建ndarraydata2 = [[3, 4, 2], [1, 8, 9]]arr2 = np.array(data2)## print(arr2)## asrr1 = np.asarray([2, 3, 4])# print(asrr1)## asrr2 = np.asarray([[2, 1, 3,

科学计算三维可视化---TVTK入门(数据加载)

一:数据加载 大多数可视化应用的数据并非是在TVTK库中构建的,很多都是通过接口读取外部数据文件 (一)使用vtkSTLReader来读取外部文件 .stl 文件是在计算机图形应用系统中,用于表示三角形网格的一种文件格式.格式简单,应用广泛 def ivtk_scene(actors): from tvtk.tools import ivtk # 创建一个带有Crust(Python Shell)的窗口 win = ivtk.IVTKWithCrustAndBrowser() win.open(

『Python』Numpy学习指南第十章_高端科学计算库scipy入门(系列完结)

简介: scipy包包含致力于科学计算中常见问题的各个工具箱.它的不同子模块相应于不同的应用.像插值,积分,优化,图像处理,,特殊函数等等. scipy可以与其它标准科学计算程序库进行比较,比如GSL(GNU C或C++科学计算库),或者Matlab工具箱.scipy是Python中科学计算程序的核心包;它用于有效地计算numpy矩阵,来让numpy和scipy协同工作. 在实现一个程序之前,值得检查下所需的数据处理方式是否已经在scipy中存在了.作为非专业程序员,科学家总是喜欢重新发明造轮子

python科学计算之numpy

1.np.logspace(start,stop,num): 函数表示的意思是;在(start,stop)间生成等比数列num个 eg: import numpy as np print np.logspace(1,4,4) 结果为: [    10.    100.   1000.  10000.] 2. np.fromstring('admin',dtype=np.int8):函数的作用是将字符串装换成对应的ascii值 import numpy as np print np.fromstr

转载~如何在Pycharm中安装numpy等科学计算库

转载自机器小人z windows下如何快速优雅的使用python的科学计算库? Python是一种强大的编程语言,其提供了很多用于科学计算的模块,常见的包括numpy.scipy.pandas和matplotlib.要利用Python进行科学计算,就需要一一安装所需的模块,而这些模块可能又依赖于其它的软件包或库,因而安装和使用起来相对麻烦.幸好有人专门在做这一类事情,将科学计算所需要的模块都编译好,然后打包以发行版的形式供用户使用,Anaconda就是其中一个常用的科学计算发行版. 我们从网站(

windows下安装python科学计算环境,numpy scipy scikit等

背景: 目的:要用Python下的DBSCAN聚类算法. scikit-learn 是一个基于SciPy和Numpy的开源机器学习模块,包括分类.回归.聚类系列算法,主要算法有SVM.逻辑回归.朴素贝叶斯.Kmeans.DBSCAN等,目前由INRI 资助,偶尔Google也资助一点. SciPy是一个开源的Python算法库和数学工具包,SciPy包含的模块有最优化.线性代数.积分.插值.特殊函数.快速傅里叶变换.信号处理和图像处理.常微分方程求解和其他科学与工程中常用的计算.其功能与软件MA

Python下科学计算包numpy和SciPy的安装

转载自:http://blog.sina.com.cn/s/blog_62dfdc740101aoo6.html Python下大多数工具包的安装都很简单,只需要执行 “python setup.py install”命令即可.然而,由于SciPy和numpy这两个科学计算包的依赖关系较多,安装过程较为复杂.网上教程较为混乱,而且照着做基本都不能用.在仔细研读各个包里的README和INSTALL之后,终于安装成功.现记录如下. 系统环境: OS:RedHat5 Python版本:Python2