python numpy 模块学习
2015-12-08 23:23
246 查看
numpy模块
这是一个科学计数模块。入门文章:
/article/1280320.html
下载地址:
http://sourceforge.net/projects/numpy/files/NumPy/
数组对象array
创建数组: improt numpy as np data1=[1,2,3.5,6] arr1=np.array(data1) #创建一个一维数组。 data2=[[1,2,3,4],[5,6,7,8]] arr2=np.array(data2) #创建一个二维数组。 zeros_arr=np.zeros((2,3)) #创建一个2行3列的0数组。 ones_arr=np.ones((2,3)) #创建一个2行3列的1数组。 empty_arr=np.empty((2,3,4)) #创建一个三维的数组。 np.arange(15) #类似range(),就是range()返回的是一个list,arange返回的是一个数组。 np.eye(5) #创建一个5*5的单位矩阵,对角线为1,其余部分为0. np.identity(5) #作用同np.eye(5) |
一维说明: arr=np.arange(10) arr[5] #输出5 arr[5:8] #输出array([5,6,7]) arr[5:8]=12 arr #输出array([0,1,2,3,4,12,12,12,8,9]) 注意:数组的切片是原始数据的一个视图,所以对视图上的任何修改都会影响到原数组,如果需要创建一个原数组的副本,需要写成arr.copy()。 arr_slice=arr[5:8] arr_slice[1]=12345 arr_slice #输出array([0,1,2,3,4,12,12345,12,8,9]) |
多维说明: arr3d=np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]]) arr3d[0] #输出array([[1,2,3],[4,5,6]]) arr3d[1,0] #输出array([7,8,9])这里等价于arr3d[1][0] arr3d[:1,1:2,:2] #输出array([[[4.5]]]) arr3d[0,1,:2] #输出array([4.5]) |
布尔型索引: In [46]: from numpy.random import randn #随机生成正态分布数组 In [47]: names=np.array(['Bob','Joe','Will','Bob','Will','Joe','Joe']) In [48]: data=randn(7,4) Out[48]:array([[ 0.45499308, -0.91504194, 0.8234681 , 1.73401825], [ 0.46845492, -0.46437185, 2.08760975, -0.37335943], [-0.08938842, 1.21683707, 1.81470377, -1.4222781 ], [-0.47412094, 0.73135265, -0.32416488, -0.92098348], [-0.170789 , 0.68406968, -0.32169794, -0.0801254 ], [ 1.21267635, -0.45948765, -2.64714274, -1.40673058], [ 0.95791275, 0.07200942, -1.18066411, -0.85432278]]) In [49]: data[names=='Bob'] Out[49]: array([[ 0.45499308, -0.91504194, 0.8234681 , 1.73401825], [-0.47412094, 0.73135265, -0.32416488, -0.92098348]]) #如果需要多个布尔条件的组合,使用&(和),|(或)之类的布尔运算符即可: In [50]: mask=(names=='Bob')|(names=='Will') In [51]: data[mask] Out[51]: array([[ 0.45499308, -0.91504194, 0.8234681 , 1.73401825], [-0.08938842, 1.21683707, 1.81470377, -1.4222781 ], [-0.47412094, 0.73135265, -0.32416488, -0.92098348], [-0.170789 , 0.68406968, -0.32169794, -0.0801254 ]]) |
random.randint(from,to,n):产生随机整数。范围为from到to,产生n个随机数。 |
cumsum():返回一个长度和数组长度相同的函数,这个函数是数组的累加函数。可以带一个axis参数。 |
cumprod():累乘函数,返回一个数组,同样可以带一个axis参数。 |
sum() |
mean() |
std,var:求标准差和方差 |
min,max:求最大最小 |
argmin,argmax:求最大和最小Ture索引 |
import numpy as np
np.save(filename,arr):将命名空间的arr保存到filename中,如果filename没有扩展名.npy,此扩展名会自动加上。 |
np.load(filename):读取filename中的数组到命名空间中。 |
np.savez(filename,a=arr1,b=arr2):可以将命名空间的数组用任意自定义的名字存到filename中 例子: >>> outfile = TemporaryFile() >>> np.savez(outfile, x=x, y=y) >>> outfile.seek(0) >>> npzfile = np.load(outfile) >>> npzfile.files ['y', 'x'] >>> npzfile['x'] array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) |
np.loadtxt(filename,delimiter=','):读取文本文件数组,用','分割数组。 |
np.savetxt(filename,delimiter=','):作用和上面的正好相反。 |
concatenate(list,axis):将多个数组按照指定的axis方向进行堆积。list是数组组成的list,axis表示堆积的方向。
where(condition,x,y):返回一个数组,类似于decode函数,如果condition对应位置为True返回x对应部分,否则返回y对应部分。
random.permutation(n):随机生成一个n个数字的排列。
相关文章推荐
- python第三天---collections类
- python datetime模块
- sublime text 2 配置python环境
- ironpython 2.75 在c#中的使用
- python中对文件、文件夹(文件操作函数)的操作
- Python文件夹与文件的操作
- python语法笔记(七)
- Python 教程
- Numpy详细教程
- python语法笔记(六)
- [python IDE] 舒服的pycharm设置
- numpy使用
- python之C扩展二
- win7下使用python的几种方式
- Python字符编码详解
- Ubantu(乌班图)系统中安装Python
- Reverse Integer leetcode python
- python之C扩展
- python中的那些“神器”
- Python if else for while 语句控制 【整理】