numpy常用函数总结(不定时更新)

学习python一段时间,numpy,pandas,matplotlib等这些包同房在学,经常将他们的函数混淆,所以将之前学过的,和用到过的归类整理出来,整理知识

一、多维数组对象

1. 1numpy的多维数组ndarray

1.1.1 创建数组

一维数组:arr1 = np.array([1,2,3,4])
二维数组:arr2 = np.array([[1,2,3,4],[5,6,7,8]])
查看数组的维数:arr2.ndim
查看数组形状:arr2.shape
查看数组元素类型:arr2.dtype

1.1.2 其他创建数组方法:

np.zeros(10)
np.zeros((3,6))
np.empty((2,3,4)) #返回的是一些未初始化的垃圾值

1.1.3 函数

  • array()
  • asarray()
  • arange()
  • ones()/ones_like()
  • zeros()/zeros_like()
  • empty()/empty_like()
  • eye()/identity() # 创建一个正方的N*N单位矩阵(对角线为1,其余为0)

1.2. ndarry的数据类型

1.2.1 创建时指定dtype

arr1 = np.array([1, 2, 3,4], dtype = np.float)

1.2.2 使用astype()方法显式的转换dtype

float_arr = arr.astype(np.float64)
另一种方法:
arr1的数据类型为int, arr2的数据类型为float
将arr2的数据类型转换为和arr1一样:
arr2.astype(arr1.dtype)

1.3. 数组和标量之间的运算

1.3.1标量与数组的运算会传播到整个数组

  • 大小相同的数组间的运算会应用到元素级
    arr = [[1,2,3,4],[5,6,7,8])
    arr * arr #对应位置数据相乘
    arr - arr
    1/arr
    arr**0.5
  • 大小不同的数组间运算叫广播

1.4 索引和切片

1.4.1 基本索引和切片

  1. 一维数组

arr = np.arange(10)

  • arr[5]
  • arr[5:8]
  • arr[5:8] = 12 #切片赋值
    !切片得到的是视图,更改会体现在源数据上
    eg:
    arr_slice = arr[5:8]
    arr_slice = 64
    对arr_slice赋值,也会体现在arr[5:8]上
    !可以进行显式的复制操作
    eg:arr_slice = arr[5:8].copy()
  1. 二维数组

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

  • arr2d[2]
  • arr2d[0][2]
  1. 三维数组

1.4.2 切片索引

  • arr2d[:2] #沿第0轴切片
  • arr2d[:2, 1:]

1.4.3 布尔索引

data 为一个多维数组
data[[布尔数组]]

  • 布尔数组用于组索引
  • 返回布尔值为1的元素
  • 布尔数组的长度与被索引轴长度一致

1.4.3 花式索引

  • 利用整数数组进行索引

arr[[1,3,5]]

  • 选择arr数组的1,3,5行(从0开始)

arr[[-3, -5, -7]]

  • 负数表示从末尾开始选行,倒数3,5,7行(从1开始)

arr[[1,3,5],[2,4,6]]

  • 选择的是元素(1,2),(3,4),(5,6),得到的是一个一维数组,而不是一个矩阵

arr[[1,3,5]][:, [2,4,6]]

  • 得到1,3,5行的2,4,6列数据,一个3X3矩阵
  • 或者使用函数:np.ix_()
    arr[np.ix_([1,3,5],[2,4,6])]

1.5 数组的转置和轴对换

1.5.1 转置 (返回的是源数据视图)

二维数组:arr.T#轴对换

高维数组:arr.transpose((1,0,2))

二、通用函数

2.1 一元函数

np.abs()
np.sqrt() # 平方根
np.square() #平方
......

2.2 二元函数

np.add() # 将数组对应元素相加
np.subtract() # 从第一个数组中减去第二个数组中的元素
......

三、利用数组进行数据处理

3.1 将条件逻辑表述为数据运算

np.where( cond, x, y)
等价于:x if condition else y
条件为1时返回x, 条件为0时返回y

3.2 数学和统计方法

  • 两种方法:函数调用:np.mean(arr) /对象方法:arr.mean()
  • 统计函数:np.sum()、np.std()、np.var().....
  • 最小(大)元素索引:np.argmin()/np.argmax()
  • 累计和/积:np.cumsum() / cumprod()

3.3 用于布尔型数组的方法

布尔值会被转换位1,0 ,所以用sum()来对布尔型数组计数

  • bools.any() 测试数组中是否存在一个或多个True
  • bools.all()数组中的所有值是否都为True

3.4 排序

多维数组可以在任何一个轴上进行排序,只需将轴编号传给sort()

  • arr.sort() 就地排序,会改变数组本身
  • np.sort() 顶级方法,返回数组的副本

3.5 集合逻辑

  • np.unique(x) 返回x中的唯一元素,并有序返回结果
  • np.intersect1d(x,y)计算x,y中的公共元素,并返回有序结果
  • union1d(x,y) 计算x,y中的并集,并返回有序结果
    ......

四、用于数组的文件输入输出

np.save('文件名', arr) #将arr数组保存到磁盘上.npy文件
np.load('文件名.npy')
np.savez('file.npz', arr1, arr2)# 多个数组压缩保存到一个压缩文件中

五 线性代数

np.linalg中有一组标准的矩阵分解运算以及求逆、行列式等

  • 矩阵乘法:
    x, y 为两个二矩阵
    x.dot(y) 相当于 np.dot(x, y)
    ......

六、随机数生成

np.random模块对python内置的random进行补充

  • seed 随机数生成器种子
  • rand 产生均匀分布的样本值
  • randint 从给定范围随机选取整数
  • randn 产生标准正态分布的样本值
  • normal 产生正态分布样本值
  • binomial 产生二项分布样本值
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,837评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,551评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,417评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,448评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,524评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,554评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,569评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,316评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,766评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,077评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,240评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,912评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,560评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,176评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,425评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,114评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,114评论 2 352

推荐阅读更多精彩内容