numpy怎么安装,numpy和pandas的区别

  numpy怎么安装,numpy和pandas的区别

  数组提供多维数组对象(以存储同构或者异构即结构数组数据)以及操作这些对象的优化函数/方法。

  参见维基百科NumPy

  NumPyType:模块

  提供

  任意同质项的数组对象数组上的快速数学运算线性代数、傅立叶变换、随机数生成如何使用文档

  文档有两种形式:提供的文档字符串

  与代码和一个松散的常设参考指南,可从

  NumPy主页http://www.scipy.org _ .

  我们建议使用

  伊普森http://ipython.scipy.org _,一个高级Python外壳,具有

  选项卡-完成和自检功能。

  对于某些对象np.info(obj)可以提供额外的帮助(用来获取函数,类,模块的一些相关信息).这是

  如果您在顶部看到"关于函数的方法对象的帮助:"这一行,情况尤其如此

  帮助()页面的。为了速度,Ufuncs是用C实现的,而不是Python .

  本机Python帮助()不知道如何查看它们的帮助,但是我们的

  np.info()函数可以。

  要搜索包含关键字的文档,请执行以下操作:

  将数组作为铭牌导入

  np.lookfor(keyword )通用文档,如术语表和基本概念帮助

  在单据子模块下有:

  从数组导入文档

  帮助(doc)可用的子包

  -

  文件

  关于广播、索引等的专题文献。

  解放运动

  几个子程序包使用的基本功能。

  随意

  核心随机工具

  软件包简介

  核心线性代数工具

  快速傅里叶转换(同快速傅立叶变换)

  核心快速傅里叶转换(同fast Fourier transform)例程

  多项式

  多项式工具

  测试

  NumPy测试工具

  f2py

  FORTRAN语言到计算机编程语言接口生成器。

  发布工具

  对发布工具的增强,支持

  FORTRAN语言编译器支持等等。

  公用事业

  -

  试验

  运行数组单元测试

  显示配置

  显示数组生成配置

  双数

  用高性能的科学计算工具覆盖某些功能

  材质库

  把一切都做成矩阵。

  __版本_ _

  NumPy版本字符串下面举几个例子:

  将数组作为铭牌导入

  帮助(文档)

  帮助(文档创建)

  医生。基础?

  帮助(np.lib)

  多维数组预览翻译自快速入门教程

  NumPy的主要的对象是同类的多维数组(同质多维数组).NumPy的维度(尺寸)被称为轴(轴).轴的数字代表排名第7 .

  例如,在三维空间中一个坐标(坐标)为[1,2,1]的点是一维数组,轴的长度(长度)是3。而

  [[ 1. 0. 0.],

  [ 0. 1. 2.]]的等级是2 (此数组是二维的).它的第一个维度(尺寸(轴) )的长度是2, 第二个维度长度是3。

  NumPy的排列类被称为恩达拉雷。

  ndarray.ndim:数组的坐标轴(或轴或维度)(轴(尺寸))的个数ndarray.shape:数组的维度(尺寸),是由每个维度的长度组成的整数元组。

  对于一个n行m列的矩阵(矩阵),形状便是(n,m)n数组。大小:数组的元素(元素)的总数,等于形状的元素的积ndarray.dtype:一个描述数组的元素的类型的对象ndarray.itemsize:数组的每个元素的二进制表示的大小。例如,元素的类型为float64的数组有8 (=64/8)个项目大小,类型为复杂32是项目大小为4(=32/8)。恩达拉雷。数据:包含数组实际元素的缓冲区。通常,我们不需要使用这个属性,因为我们将使用索引工具访问数组中的元素。下面有一些示例:

  z=np.array([[ 0,1,2,3,4],

  [ 5, 6, 7, 8, 9],

  [10, 11, 12, 13, 14]])

  t=np.array([z,2 * z 1])

  tarray([[[ 0,1,2,3,4],

  [ 5, 6, 7, 8, 9],

  [10, 11, 12, 13, 14]],

  [[ 1, 3, 5, 7, 9],

  [11, 13, 15, 17, 19],

  [21,23,25,27,29]])print( z.ndim=,z.ndim)

  print(t.ndim=,t.ndim)z.ndim=2

  t.ndim=3print(z.shape=,z.shape)

  print(t.shape=,t.shape)z.shape=(3,5)

  t.shape=(2,3,5)print(z.size=,z.size)

  print(t.size=,t.size)z.size=15

  t。尺寸=30t。数据类型。name int 32 t . item size 4 type(t)numpy。多维数组

  多维数组索引zarray([[ 0,1,2,3,4],

  [ 5, 6, 7, 8, 9],

  [10,11,12,13,14]])z[0] #第一行元素array([0,1,2,3,4])z[0,2] #第一行的第三个元素2t[0]数组([[ 0,1,2,3,4],

  [ 5, 6, 7, 8, 9],

  [10,11,12,13,14]])t[0][2]数组([10,11,12,13,14])t[0,2]数组([10,11,12,13,14])t[0,2,3]13t[0,2,2:4]数组([[2,3],

  [7, 8]])对于列表e=[1,2,3,4]

  p=[e,e]

  p[0][0]1p[0,0] #这种语法是错误的-

  类型错误回溯(最近一次调用)

  模块()中的ipython-input-300-d527d1725556

  - 1 p[0,0] #这种语法是错误的

  类型错误:列表索引必须是整数或切片,而不是元组

  多维数组支持向量化运算作用于每个元素的运算zarray([[ 0,1,2,3,4],

  [ 5, 6, 7, 8, 9],

  [10,11,12,13,14]])z.sum() #所有元素的sum105z.sum(轴=0) #沿轴0求和,即列方向求和,相当于矩阵的行向量array([15,18,21,24,27])z.sum(axis=1) #相当于矩阵的列向量array([10,35,60])z.std() #所有元素标准差4.3204937989385739z.std(轴=0)数组([ 4.0824829,4.0824829,4.0824829,4.0824829,4.0824829])z.cumsum() #所有元素的累积和数组([ 0,1,3,6,10,15,21,28,36,45,55,66,78,

  91,105],dtype=int32)z * 2 #类似矩阵的数量乘法数组([[ 0,2,4,6,8],

  [10, 12, 14, 16, 18],

  [20,22,24,26,28]])z ** 2array([[ 0,1,4,9,16],

  [ 25, 36, 49, 64, 81],

  [100,121,144,169,196]],dtype=int 32)NP。sqrt(z)数组([[0 . 1. 1.41421356, 1.73205081, 2.],

  [ 2.23606798, 2.44948974, 2.64575131, 2.82842712, 3.],

  [ 3.16227766,3.31662479,3.46410162,3.60555128,3.74165739]])y=np.arange(10) #类似计算机编程语言的范围,但是回传排列

  yarray([0,1,2,3,4,5,6,7,8,9])a=np.array([1,2,3,6])

  b=np.linspace(0,2,4) #建立一個数组,在0与2的范围之间四等分

  c=a - b

  卡雷([ 1。 1.33333333, 1.66666667, 4.])# 全域方法

  a=np.linspace(-np.pi,np.pi,100)

  b=np.sin(a)

  c=np.cos(a)b=np.array([1,2,3,4])

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

  打印( a b=,a b)

  打印( a - b=,a - b)

  打印( a * b=,a * b)

  打印( a/b=,a/b)

  打印( a //b=,a //b)

  print(a % b=,a % b)a b=[ 5 7 9 11]

  甲-乙=[3 3 3 3]

  a * b=[ 4 10 18 28]

  a/b=[ 4 .2.5 2.1.75]

  a //b=[4 2 2 1]

  a % b=[0 1 0 3]对于非数值型数组a=np.array(list(python ))

  aarray([p , y , t , h , o , n],

  dtype= U1 )b=NP。数组(列表( numpy ))

  barray([n , u , m , p , y],

  U1)

  类型错误回溯(最近一次调用)

  模块()中的ipython-input-153-f96fb8f649b6

  - 1 a b

  类型错误:u func"add "不包含具有签名匹配类型dtype( U1 )dtype( U1 )dtype( U1 )list(a)list(b)[ p , y , t , h , o , n , n , u , m , p , y]的循环线性代数从numpy.random导入边缘

  从numpy导入求解,发票

  a=np.array([[1,2,3],[3,4,6.7],[5,9.0,5]])

  转置()数组([[ 1。 3. 5.],

  [ 2. 4. 9.],

  [ 3. 6.7, 5.]])库存(a)数组([[-2.27683616,0.96045198,0.07909605),

  [ 1.04519774, -0.56497175, 0.1299435 ],

  [ 0.39548023,0.05649718,-0.11299435]])b=np.array([3,2,1])

  求解(a,b) #解方程式ax=barray([-4.83050847,2.13559322,1.18644068])c=rand(3,3) #建立一個3x3随机矩阵

  卡雷([[ 0.98539238,0.62602057,0.63592577],

  [ 0.84697864, 0.86223698, 0.20982139],

  [ 0.15532627,0.53992238,0.65312854]])np.dot(a,c) #矩阵相乘数组([[ 3.14532847,3.97026167,3.01495417),

  [ 7.38477771, 8.94448958, 7.1230241 ],

  [ 13.32640097, 13.58984759, 8.33366406]])数组的创建参考np.doc.creation?

  创建阵列有5种通用机制:

  从其他计算机编程语言结构(例如,列表、元组)的转换内在数组数组数组创建对象(例如,数组、1、0、

  等等。)从磁盘读取标准或自定义格式的数组通过使用字符串或缓冲区从原始字节创建数组使用特殊的库函数(例如,随机)将数组作为铭牌导入

  x=np.array([2,3,1,0])

  x1=np.array([[1,2.0],[0,0],(1 1j,3 .)]) #注意元组、列表和类型混合

  x2=np.array([[ 1 .0.j,2 .0.j],[ 0 .0.j,0 .0.j],[ 1 .1.j,3 .0.j]])

  y=np.zeros((2,3))

  y1=np.ones((2,3))

  y2=np.arange(10)

  y3=np.arange(2,10,dtype=np.float)

  y4=np.arange(2,10,0.2)

  y5=np.linspace(1 . 4. 6) # 将一和四之间六等分

  z=NP。索引((3,3))

  r=[x,x1,x2,y,y1,y2,y3,y4,y5,z]

  s=x,x1,x2,y,y1,y2,y3,y4,y5,z .拆分(,)

  对于范围内的我(镜头(r)):

  打印(“% s=”% s[I])

  打印()

  打印(r[i])

  打印(75 * =)x=

  [2 3 1 0]

  ===========================================================================

  x1=

  j 2 .0.j]

  [ 0.0.j 0 .0.j]

  3 .0.j]]

  ===========================================================================

  x2=

  j 2 .0.j]

  [ 0.0.j 0 .0.j]

  3 .0.j]]

  ===========================================================================

  y=

  [[ 0.0.0.]

  [ 0.0.0.]]

  ===========================================================================

  y1=

  [[ 1.1.1.]

  [ 1.1.1.]]

  ===========================================================================

  y2=

  [0 1 2 3 4 5 6 7 8 9]

  ===========================================================================

  y3=

  [ 2.3.4.5.6.7.8.9.]

  ===========================================================================

  y4=

  [ 2.2.2 2.4 2.6 2.8 3.3.2 3.4 3.6 3.8 4.4.2 4.4 4.6 4.8

  5.5.2 5.4 5.6 5.8 6.6.2 6.4 6.6 6.8 7.7.2 7.4 7.6 7.8

  8.8.2 8.4 8.6 8.8 9.9.2 9.4 9.6 9.8]

  ===========================================================================

  y5=

  [ 1.1.6 2.2 2.8 3.4 4.]

  ===========================================================================

  z=

  [[[0 0 0]

  [1 1 1]

  [2 2 2]]

  [[0 1 2]

  [0 1 2]

  [0 1 2]]]

  =======================================温馨提示:关于参数订单:

  订单指内存中存储元素的顺序,C指和丙语言相似(即行优先),F指和FORTRAN语言相似(即列优先)

  g=np.ones((2,3,4),dtype=i ,order=C) #还有` np.zeros()

  加里([[[1,1,1,1],

  [1, 1, 1, 1],

  [1, 1, 1, 1]],

  [[1, 1, 1, 1],

  [1, 1, 1, 1],

  [1,1,1,1]]],dtype=int32)#可将其他数组作为参数传入,返回传入数组的`形状相同的全一矩阵

  h=np.ones_like(g,dtype=float16 ,order=C) #还有` np.zeros_like()

  哈里([[[ 1。 1. 1. 1.],

  [ 1. 1. 1. 1.],

  [ 1. 1. 1. 1.]],

  [[ 1. 1. 1. 1.],

  [ 1. 1. 1. 1.],

  [ 1. 1. 1. 1.]]],dtype=float16)注意事项:数组的组成/长度/大小在任何维度内都是同质的。整个数组只允许一种数据类型(numpy.dtype)。NumPy数据类型对象数据类型

  描述

  示例

  t

  位域

  t4 (4位)

  乙

  布尔值

  乙(正确或假)

  我

  整数

  i8 (64位)

  u

  无符号整数

  u8 (64位)

  f

  浮点数

  f8 (64位)

  丙

  浮点复数

  c16 (128位)

  哦

  对象

  o(指向对象的指针)

  s,a

  字符串

  S24 (24个字符)

  u

  统一码

  U24 (24个统一码字符)

  五

  其他

  V12 (12字节数据块)

  结构数组允许我们至少在每列上使用不同的NumPy数据类型。

  np.info(np.dtype) dtype()

  dtype(obj,align=False,copy=False)

  创建数据类型对象。

  C=np.array((x,y),order=C )

  F=np.array((x,y),order=F )

  x=0.0y=0.0 #内存清理-upC[:2]。round(2)数组([[[ 0.67,0.29,1.54, 0.07, 2.64, -0.65],

  [ 0.4 , -0.63, 1.43, 1.11, 0.93, -0.52],

  [-0.41, 2.23, -1.16, -1.66, 0.07, 0.21],

  [ 1.46, 1.22, 0.2 , -0.56, 2.36, -1.65],

  [-0.39, 1.73, -0.24, -1.45, 0.43, -0.41]],

  [[ 4.34, 3.58, 6.08, 3.15, 8.28, 1.69],

  [ 3.79, 1.73, 5.86, 5.22, 4.87, 1.97],

  [ 2.17, 7.46, 0.67, -0.32, 3.15, 3.42],

  [ 5.93, 5.44, 3.4 , 1.89, 7.72, -0.3 ],

  [ 2.22, 6.46, 2.51,0.1,3.85,2.18]])% time it c . sum()135毫秒每循环2.29毫秒(平均标准差。戴夫。7次运行,每次10个循环)%但是,当考虑以下情况时,会有显著的不同。

  %timeit C[0]。总和(轴=0)每循环128毫秒894秒(平均标准偏差。戴夫。7次运行,每次10个循环)%timeit C[0]。总和(轴=1)每循环66.5毫秒296秒(平均标准偏差。戴夫。在7次运行中,每次循环10次)%timeit F.sum(轴=0)每次循环1.06 s 48.9 ms(平均值标准偏差。戴夫。7次运行中,每次循环1次)%timeit F.sum(轴=1)每次循环2.12 s 35.1 ms(平均值标准偏差。戴夫。7次运行,每次循环1次)F=0.0C=0.0 #内存清理从上面可以看出:

  对几个大向量的操作比对大量小向量的操作好。

  大向量的一些元素存储在相邻的内存位置,这可以解释相对的性能优势。

  但是和类C语言变体相比,整体运行要慢很多。

  选择合适的内存布局可以将代码执行速度提高2个数量级以上。

  结论:基本数据类型(整数、浮点数、字符串)提供了原始数据类型。标准数据结构(元组、列表、字典、集合类)提供了对数据集的各种操作。数组(numpy.ndarray类)提供了代码的向量化操作,使得代码更加简洁、方便、高性能。有价值的信息:

  Python简介:http://www.python.org/doc/努皮帮助文件:http://docs.scipy.org/doc/西皮讲义:http://www.scipy-lectures.org/index.html

  探索有趣的事情!

  转载请联系作者授权,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: