numpy数组基础知识

原创 2015年07月08日 20:00:05
#回顾numpy的基础用法
#1...numpy的数组的属性
import numpy as np 

a=np.arange(20,dtype=np.float).reshape(4,5)
print a.ndim #数组轴的个数
print a.shape #数组在每个维度上的大小,返回值为一个整数元祖
print a.size #数组元素的总个数
print a.dtype  #数组元素的类型
print a.itemsize #数组中每个元素的字节大小
#2...numpy创建数组
b=([[1,2,3],
    [2,3,4],
    [4,5,6]])  #方法一:直接使用python的方法创建数组
c=np.array([1,2,3,4,5],dtype=np.complex)  #方法二:使用numpy的array等函数(其他函数如:arange,linspace,indice)创建数组
#注意array函数中指定数组值的部分只能有一个参数,该参数是由数值组成的列表
 #3...numpy通过其他函数创建数组
#注意:numpy中的zeros、ones、empty等函数的默认创建数组类型dtype都是float64
d=np.zeros((3,4))#创建一个全0的数组
print d
e=np.ones((2,3,4),dtype=np.int16)  #创建一个全1的数组
print e
f=np.empty((2,3)) #函数empty创建一个内容随机并且依赖于内存状态的数组
print f  

#关于numpy的数组的打印注意:当一个数组特别大时,numpy自动省略中间部分只打印角落
print np.arange(10000).reshape(100,100)
#3...numpy数组的基本运算
#注意numpy中数组的算术运算都是按元素的,矩阵乘法可以使用dot函数
A=np.array([10,20,30,40])
B=np.array([1,2,3,4])
print A-B,A*B,A**2,10*np.sin(A),A<35,np.dot(A,B)
#有些操作符+=  -+  *=用来更改已存在数组而不创建一个新数组
del  a
a=np.random.random((2,3))
print a
print a.sum(),a.min(),a.max()

#当在函数中指定axis参数时,可以把上述这些元算应用到数组的指定轴上
print a.sum(axis=0)
print a.cumsum(axis=1)  #这个函数是按照axis的方向进行前面值连续的加和
#NumPy提供常见的数学函数如sin,cos,sqrt,add和exp等。在NumPy中,这些叫作“通用函数”(ufunc)。
#在NumPy里这些函数作用按数组的元素运算,产生一个数组作为输出,此处不再演示。

#4...numpy中数组的索引、切片和迭代
#在numpy中,一维数组可以被索引、切片和迭代,就像列表和其他python序列
#!!!注意:索引时一定用的是[]而不是()
#一维数组的索引
C=np.arange(10)*3
print C[: : -1]#注意中间不带逗号
C[:6:2]=1000
print C
#多维数组的索引
#多维数组可以每个轴有一个索引,这些索引由一个逗号分割的元组给出
D=np.array([[0,1,2,3],
            [10,11,12,13],
            [21,22,23,24],
            [31,32,33,34]])
print D[1:2,1]
#当提供的索引少于轴数时,缺失的索引被认为是整个切片
print D[-1],D[-1,...]  #这两种写法是一样的
#注意当索引号为-1时,表示最后一行;由于缺失axis=1时的索引,所以会默认显示整个axis=1的切片
#当对每个数组中的元素进行运算时,可以使用flat属性,该属性是数组元素的一个迭代器
for element in D.flat:
    print element


#5...数组的形状操作
#更改数组形状
E=np.floor(10*np.random.random((3,4)))
print E
print E.ravel() #函数ravel用来将数组展平,即变成一维
print E.reshape(6,2)
print E
print E.transpose()#函数transpose用来将数组转置
print E.resize((2,6))#注意:reshape改变参数的形状并返回它,而resize函数则改变数组自身,但是返回值为空
print E
#如果在改变形状操作中一个维度被给做-1,它会自动计算另一个维度

#组合不同的数组,即将数组沿不同轴堆叠在一起

F = np.floor(10*np.random.random((2,2)))
G = np.floor(10*np.random.random((2,2)))
print F,G
print np.vstack((F,G))  #垂直组合
print np.hstack((F,G))  #水平组合
#此外,函数column_stack以列将一维数组组合成二维数组,它等同于vstack对一维数组
#raw_stack则是将一维数组以行组合成二维数组
#注意:对于比二维高的高维数组,hstack沿着第二个轴组合,vstack沿着第一个轴组合,concatenate允许可选参数给出组合时沿着的轴。
#在复杂情况下,r_[]和c_[]对创建沿着一个方向组合的数很有用,它们允许范围符号(“:”):r_[1:4,0,4] 结果为array([1, 2, 3, 0, 4]) 
#当使用数组作为参数时,r_和c_的默认行为和vstack和hstack很像,但是允许可选的参数给出组合所沿着的轴的代号。

#数组分割
#使用hsplit你能将数组沿着它的水平轴分割,或者指定返回相同形状数组的个数,或者指定在哪些列后发生分割
#vsplit沿着纵向的轴分割,array split允许指定沿哪个轴分割。
H=np.floor(10*np.random.random((2,12)))
print H
print np.hsplit(H,3)  #分割数组
print np.vsplit(H,2)

利用python进行数据分析学习笔记—Numpy基础知识

Numpy在整个数据分析的过程中,个人的理解是Numpy主要提供基于多维数组以及矩阵的运算(大部分是大学里面学的线性代数的知识)一、ndarray(一种多维数组对象)基本用法:import numpy...

【Python数据挖掘课程】六.Numpy、Pandas和Matplotlib包基础知识

前面几篇文章采用的案例的方法进行介绍的,这篇文章主要介绍Python常用的扩展包,同时结合数据挖掘相关知识介绍该包具体的用法,主要介绍Numpy、Pandas和Matplotlib三个包。目录: ...

Numpy、Pandas和Matplotlib包基础知识

一. Python常用扩展包         参考张良均的《Python数据分析与挖掘实战》,下图展示了常见的Python扩展包。         常用的包主要包括...

Python numpy基础知识

1.基础知识 NumPy的主要对象是多维数组。它是由相同元素(通常是数字)组成的,通过正整数元组(tuple)作为索引的表格。 在数组中,纬度(dimensional)被称为轴(axis),轴的数...
  • claroja
  • claroja
  • 2017年04月18日 15:42
  • 340

Python numpy基础知识

1.基础知识 NumPy的主要对象是多维数组。它是由相同元素(通常是数字)组成的,通过正整数元组(tuple)作为索引的表格。 在数组中,纬度(dimensional)被称为轴(axis),轴的数...

PHP数组基础知识

  • 2014年01月28日 01:45
  • 6KB
  • 下载

C#基础知识 C#数组

  • 2012年10月12日 17:54
  • 68KB
  • 下载

java 基础知识-数组的7种算法(排序、求和、最值、遍历...)

遍历 遍历就是把这个数组的每个元素 显示出来 遍历的方法就是先定义这个数组的大小,然后用FOR循环来完成数组,例如 double[] score = new double[5]; Scanne...

php基础知识收集--数组、文件、字符串、文件、会话

1、数组的概念是什么?数组根据索引分为哪两种,如何区分?数组的赋值方式有哪两种? 数组是一个可以存储一组或一系列数值的变量(复合型变量) 索引数组(索引值为数字,以0开始)和关联数组(以字符串作为索...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:numpy数组基础知识
举报原因:
原因补充:

(最多只允许输入30个字)