Numpy运算与排序 (2020-04-07)

1. 矩阵运算

1. 内积
>>> a = np.array([1,1])
>>> b = np.array([2,0])
>>> a.dot(a)
1^2+1^2 = 2
>>> a.dot(b)
1*2+1*0 = 2

2. 矩阵乘法,二维以上直接乘就是

2. 判断符运用

>>> a=np.array([1,2,3])
>>> a<0
array([False, False, False])

#筛选
>>> a=np.array([1,2,3])
>>> b=np.array([True,False,True])
>>> a[b]
array([1, 3])

>>> 条件筛选
array([[5, 0, 3],
       [3, 7, 9],
       [3, 5, 2]])

>>> a[a>5]
array([7, 9])
>>> a[a>5]
array([[False, False, False],
       [False,  True,  True],
       [False, False, False]])
>>> a[a%2==0]
array([0, 2])
>>> a+2>5
array([[ True, False, False],
       [False,  True,  True],
       [False,  True, False]])
>>> a+2>a*2
array([[False,  True, False],
       [False, False, False],
       [False, False, False]])
>>> a[a+2>a*2]
array([0])

3. 常用聚合函数

函数 说明
sum 对数组中全部或某轴向的元素。零长度的数组sum为0
mean 算数平均数。零长度的数组mean为nan
std、var 标准差、方差
min、max 最大值、最小值
argmin、argmax 最大和最小元素的索引
cumsum、cumprod 累计和、累计积
>>> np.random.seed(0)
>>> x = np.random.randint(10, size=(2,3))
array([[5, 0, 3],
       [3, 7, 9]])
>>> np.sum(x,axis=1)  #以一维数组内元素为单位进行操作
array([ 8, 19])
>>> np.sum(x,axis=1)  #以一维数组为单位操作
array([ 8,  7, 12])

4. 读取文件

import pandas as pd
grade=pd.read_csv(r"student_grade.txt",sep='\t')  #txt和csv均为pd.read_csv,源文件空格分隔
grade.head(6)    #显示6个

np.sum(grade['语文'])  #单个关键字列下聚合运算,默认axis = 0

5. 排序

原始数组:a = array([[4, 5, 0, 3, 3, 3, 1, 3, 5, 2]])

1. a.sort()  直接改变a
2. np.sort(a)  不直接改变a,默认升序
   降序写法:-np.sort(-a)  

3. 返回索引值的排序 np.argsort()
>>> np.random.seed(0)
>>> a = np.random.randn(3, 3) #标准正态
array([[ 1.76405235,  0.40015721,  0.97873798],
       [ 2.2408932 ,  1.86755799, -0.97727788],
       [ 0.95008842, -0.15135721, -0.10321885]])

>>> np.sort(a,axis = 0)   #按照第一个轴(列或者理解为一维数组为单位)进行排列
array([[ 0.95008842, -0.15135721, -0.97727788],
       [ 1.76405235,  0.40015721, -0.10321885],
       [ 2.2408932 ,  1.86755799,  0.97873798]])

>>> a.argsort(axis=0)    #也是排序,但显示的是其行索引,不改变源
array([[2, 2, 1],
       [0, 0, 2],
       [1, 1, 0]])

6. 唯一化与集合运算

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

6.1 唯一化(去重)

ints = np.array([1,2,3,4,2,4,3,5])
ints

np.unique(ints)  #array([1, 2, 3, 4, 5])

6.2 集合运算

# 包括但不限于一维数组
1. 交集
   np.intersect1d(x,y) 
   等价于: np.in1d(x,y)    #得到一个表示“x的元素是否包含于y”的布尔型数组
          x[np.in1d(x,y)]
2. 并集(默认去重)
   np.union1d(x,y)
3. 差集
   np.setdiff1d(x,y)      #差集,A-A∩B 即元素在x中且不在y中
4. 补集
   np.setxor1d(x,y)      #存在于一个数组中但不同时存在于两个数组中的元素,并集减交集
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,589评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,615评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,933评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,976评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,999评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,775评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,474评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,359评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,854评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,007评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,146评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,826评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,484评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,029评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,153评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,420评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,107评论 2 356

推荐阅读更多精彩内容

  • 本章将会介绍 模块和源文件访问级别访问控制语法自定义类型子类常量、变量、属性、下标构造器协议扩展泛型类型别名位运算...
    寒桥阅读 884评论 0 2
  • 运算符是处理数据的基本方法,用来从现有的值得到新的值。JavaScript 提供了多种运算符,本章逐一介绍这些运算...
    徵羽kid阅读 680评论 0 0
  • 高级运算符 文档地址 作为 基本运算符 的补充,Swift 提供了几个高级运算符执行对数传值进行更加复杂的操作。这...
    hrscy阅读 842评论 0 2
  • 除了基本运算符,Swift 中还有许多可以对数值进行复杂运算的高级运算符。这些高级运算符包含了在位运算符和移位运算...
    答案MK阅读 679评论 0 2
  • 因为孩子存在着记东西快,忘得也快的情况,所以趁寒假让孩子把低年级的古诗词也强化下,这次课复习了孟浩然《宿建德江》王...
    认真对待每一节课阅读 292评论 0 0