矩阵乘法与Numpy Dot


Numpy Dot 用来计算两个向量之间的点积,
点积:每个条目的数相乘后相加

例:
a = [1 ,2, 3, 4]
b = [2 ,3, 4, 5]
那么 a与b的点积 = 12+23+34+45 =40

我们可以用numpy.dot来计算

a = [1,2,3,4]
b = [2,3,4,5]
numpy.dot(a,b) = 40

数组与矩阵相乘:

Paste_Image.png

矩阵和矩阵相乘:

Paste_Image.png

例子:计算出所有获奖国家的得分,金牌4分 ,银牌2分,铜牌1分。最后以包含获奖国家名称和得分的数据框输出:

import numpy
    from pandas import DataFrame, Series


def numpy_dot():
countries = ['Russian Fed.', 'Norway', 'Canada', 'United States',
             'Netherlands', 'Germany', 'Switzerland', 'Belarus',
             'Austria', 'France', 'Poland', 'China', 'Korea', 
             'Sweden', 'Czech Republic', 'Slovenia', 'Japan',
             'Finland', 'Great Britain', 'Ukraine', 'Slovakia',
             'Italy', 'Latvia', 'Australia', 'Croatia', 'Kazakhstan']

gold = [13, 11, 10, 9, 8, 8, 6, 5, 4, 4, 4, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0]
silver = [11, 5, 10, 7, 7, 6, 3, 0, 8, 4, 1, 4, 3, 7, 4, 2, 4, 3, 1, 0, 0, 2, 2, 2, 1, 0]
bronze = [9, 10, 5, 12, 9, 5, 2, 1, 5, 7, 1, 2, 2, 6, 2, 4, 3, 1, 2, 1, 0, 6, 2, 1, 0, 1]

# YOUR CODE HERE



return olympic_points_df

在‘# YOUR CODE HERE’处 输入正确代码:

  • 整理数据并转成dataFrame的形式:

    data ={'country_name':countries,
            'gold': gold,
            'silver':silver,
            'bronze':bronze}
    base_data_df = DataFrame(data);
    
  • 筛选出金牌,银牌,铜牌数量,并乘以 [4,2,1]这样就能计算出points这列了,计算完并保存到points列

    base_data_df['points'] = base_data_df[['gold','silver','bronze']].dot([4,2,1])
    

我们打印下这个时候的base_data_df:

            bronze    country_name  gold  silver  points
0        9    Russian Fed.    13      11      83
1       10          Norway    11       5      64
2        5          Canada    10      10      65
3       12   United States     9       7      62
4        9     Netherlands     8       7      55
5        5         Germany     8       6      49
6        2     Switzerland     6       3      32
7        1         Belarus     5       0      21
8        5         Austria     4       8      37
9        7          France     4       4      31
10       1          Poland     4       1      19
11       2           China     3       4      22
12       2           Korea     3       3      20
13       6          Sweden     2       7      28
14       2  Czech Republic     2       4      18
15       4        Slovenia     2       2      16
16       3           Japan     1       4      15
17       1         Finland     1       3      11
18       2   Great Britain     1       1       8
19       1         Ukraine     1       0       5
20       0        Slovakia     1       0       4
21       6           Italy     0       2      10
22       2          Latvia     0       2       6
23       1       Australia     0       2       5
24       0         Croatia     0       1       2
25       1      Kazakhstan     0       0       1
  • 看完上面的数据,我们只需要将country_name 和points两列筛选出来就ok了:
olympic_points_df = base_data_df[['country_name','points']]

看下结果:

      country_name  points
0     Russian Fed.      83
1           Norway      64
2           Canada      65
3    United States      62
4      Netherlands      55
5          Germany      49
6      Switzerland      32
7          Belarus      21
8          Austria      37
9           France      31
10          Poland      19
11           China      22
12           Korea      20
13          Sweden      28
14  Czech Republic      18
15        Slovenia      16
16           Japan      15
17         Finland      11
18   Great Britain       8
19         Ukraine       5
20        Slovakia       4
21           Italy      10
22          Latvia       6
23       Australia       5
24         Croatia       2
25      Kazakhstan       1

ok ,这就是我们要的:

有些人在获取金牌银牌铜牌的数据时可能会直接通过基础数据生成个DataFrame,

data ={ 'gold': gold,
            'silver':silver,
            'bronze':bronze}
    base_data_df = DataFrame(data);

然后直接 base_data_df.dot([4,2,1]),算出的结果是错的。
为什么呢?
我们来输出下以上面形式组成的base_data_df:

    bronze  gold  silver
0        9    13      11
1       10    11       5
2        5    10      10
3       12     9       7
4        9     8       7
5        5     8       6
6        2     6       3
7        1     5       0
8        5     4       8
9        7     4       4
10       1     4       1
11       2     3       4
12       2     3       3
13       6     2       7
14       2     2       4
15       4     2       2
16       3     1       4
17       1     1       3
18       2     1       1
19       1     1       0
20       0     1       0
21       6     0       2
22       2     0       2
23       1     0       2
24       0     0       1
25       1     0       0

看出区别了吗,gold,silver,,bronze三个的排序是不定的,所以乘以[4,2,1]就得出错误的结果了

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

推荐阅读更多精彩内容

  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 9,444评论 0 23
  • 最近在写个性化推荐的论文,经常用到Python来处理数据,被pandas和numpy中的数据选取和索引问题绕的比较...
    shuhanrainbow阅读 4,549评论 6 19
  • 作业一:计算两个班的人数 作业二:取余运算 作业三:求差值 作业四:输出操作
    谢汉明阅读 121评论 0 0
  • 昨天去宜家,其实我没走多少就走不动了,但还是坚持坚持,然后把自己累到要死,我好烦我自己,我啥时候才能不累到自己,我...
    细雨rain阅读 153评论 0 0
  • 昨天头图,炸了。 如某位毒友所说,可能是Sir文章意见分歧最大的一篇。 感谢所有理解的,也接受所有批评的。 Sir...
    Sir电影阅读 1,744评论 7 39