【CS231n学习笔记】2. python numpy 之numpy

Numpy

数组的创建

import numpy as np

a = np.full((3, 3), 1)
print(a)

a = np.random.random((3, 3))
print(a)

a = np.eye(3)
print(a)

a = np.array([[1, 2, 3, 4],
              [5, 6, 7, 8],
              [9, 10, 11, 12],
              [13, 14, 15, 16]])
print(a)
print(a.shape)
输出:
[[1 1 1]
 [1 1 1]
 [1 1 1]]
[[ 0.09670856  0.44868154  0.43326738]
 [ 0.57400445  0.47124464  0.76310375]
 [ 0.72557452  0.98591433  0.97147127]]
[[ 1.  0.  0.]
 [ 0.  1.  0.]
 [ 0.  0.  1.]]
[[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]
 [13 14 15 16]]
(4, 4)

数组的访问方法

import numpy as np

a = np.array([[1, 2, 3, 4],
              [5, 6, 7, 8],
              [9, 10, 11, 12],
              [13, 14, 15, 16]])
print(a)
print(a.shape)
print(a[1:3])
print(a[1:-1, 1:-1])
print(a[0, 1])
print(a[1:3, 2])
print(a[2, 1:3])

print(a[[0, 1, 3, 3], [2, 3, 2, 2]])  # print a[0,2],a[1,3],a[3,2],a[3,2]
输出:
[[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]
 [13 14 15 16]]
(4, 4)
[[ 5  6  7  8]
 [ 9 10 11 12]]
[[ 6  7]
 [10 11]]
2
[ 7 11]
[10 11]
[ 3  8 15 15]

蜜汁用法

import numpy as np

a = np.array([[1, 2, 3, 4],
              [5, 6, 7, 8],
              [9, 10, 11, 12],
              [13, 14, 15, 16]])
print(np.arange(4))
print(np.full([1, 4], 1))
print(a[np.arange(4), 1])
a[np.arange(4), [2, 3, 2, 3]] += 100
print(a)
[0 1 2 3]
[[1 1 1 1]]
[ 2  6 10 14]
[[  1   2 103   4]
 [  5   6   7 108]
 [  9  10 111  12]
 [ 13  14  15 116]]

布尔

import numpy as np

a = np.array([[1, 2, 3, 4],
              [5, 6, 7, 8],
              [9, 10, 11, 12],
              [13, 14, 15, 16]])

b = a > 5  # 还有这种操作???
print(b)

print(a[a > 6])
[[False False False False]
 [False  True  True  True]
 [ True  True  True  True]
 [ True  True  True  True]]
[ 7  8  9 10 11 12 13 14 15 16]

数组计算

import numpy as np

a = np.array([1, 2])
b = np.array([3, 4])
print(a + b)
print(a - b)
print(a * b)
print(a / b)
print(a * 2)
print(a + 3)
print(a ** 0.5)
[4 6]
[-2 -2]
[3 8]
[ 0.33333333  0.5       ]
[2 4]
[4 5]
[ 1.          1.41421356]

矩阵乘法&转置

import numpy as np

a = np.array([1, 2])
b = np.array([3, 4])
print(a.dot(b))  # 相当于自动把b竖起来,相当于两个向量内积

a = np.array([[1, 2, 3],
              [4, 5, 6]])
b = np.array([[1, 2, 3],
              [4, 5, 6]])
print(b.T)  # 转置
print(a.dot(b.T))  # 矩阵乘法
11
[[1 4]
 [2 5]
 [3 6]]
[[14 32]
 [32 77]]

求和

import numpy as np

a = np.array([[1, 2, 3],
              [4, 5, 6]])
print(a.sum())  # 求和
21

各种函数 http://link.zhihu.com/?target=http%3A//docs.scipy.org/doc/numpy/reference/routines.array-manipulation.html

广播

秩不同的矩阵能一起运算

import numpy as np

a = np.array([[1, 2, 3], [1, 2, 3], [1, 2, 3]])
b = np.array([1, 1, 0])
print(a + b)

v = np.array([1, 2, 3])
w = np.array([4, 5])
v.reshape([3, 1])
print(v.reshape(3, 1) + w)
print(w + v.reshape(3, 1))
[[2 3 3]
 [2 3 3]
 [2 3 3]]
[[5 6]
 [6 7]
 [7 8]]
[[5 6]
 [6 7]
 [7 8]]
时间: 2024-10-02 03:09:56

【CS231n学习笔记】2. python numpy 之numpy的相关文章

python学习笔记2—python文件类型、变量、数值、字符串、元组、列表、字典

python学习笔记2--python文件类型.变量.数值.字符串.元组.列表.字典 一.Python文件类型 1.源代码 python源代码文件以.py为扩展名,由pyton程序解释,不需要编译 [[email protected] day01]# vim 1.py #!/usr/bin/python        print 'hello world!' [[email protected] day01]# python 1.py hello world! 2.字节代码 Python源码文件

ZMAN的学习笔记之Python篇:装饰器

年前工作事务比较繁琐,我只能用零碎的时间继续学习Python,决定开一个系列的博文,作为自己深入学习Python的记录吧.名字也取好了,就叫<ZMAN的学习笔记之Python篇>~开篇是关于装饰器的,春节假期码的字哈哈~就让我们开始吧! 本文的例子都是自己想的,如果不是很合适,请大家提出宝贵意见哈~谢谢啦! 一.为什么要用“装饰器” 比如我们写了如下一段代码: # 打印0~99 def func(): for i in range(100): print(i) 我们想要监测执行这个函数花费了多

python 学习笔记 7 -- Python关键字总结

0.写在前面的话 学习一门语言最重要的功课是练习与复习,在<笨方法学Python>中第三十七节虽然没有教你任何内容,但是它提醒我们:"学了这么多,你还能记得多少?该复习了!" 下面我们就对这一节的第一部分"关键字"来做个复习: Python中的关键字包括如下: and       del        from      not      while    as        elif       global    or       with     

ZMAN的学习笔记之Python篇:命令行解析

ZMAN的学习笔记之Python篇: 1.装饰器 2.函数“可变长参数” 3.命令行解析 注:本文全原创,作者:ZMAN  (http://www.cnblogs.com/zmanone/) 在Python中,对命令行的解析方式不唯一,本文将介绍两种方法:一种是用sys.argv手动设置,另一种是用argparse模块. 一.sys.argv是什么 首先看一个例子: import sys print(len(sys.argv)) for arg in sys.argv: print(arg) 将

ZMAN的学习笔记之Python篇:函数可变长参数

ZMAN的学习笔记之Python篇: 1.装饰器 2.函数“可变长参数” 这次来聊聊Python中函数的“可变长参数”,在实际中经常会用到哦~  一.什么是“可变长参数” “可变长参数”就是向一个函数传入不定个数的参数.比如我写一个函数:传入一个学生参加各科目考试的成绩,求平均分,如两个学生分别传入(92, 91, 88)和(88, 95),因为每个学生参加的考试个数不同,因此传入的参数个数也就不同了,遇到这种情况,我们在定义函数的时候,可以使用“可变长参数”. 二.在定义函数时使用“可变长参数

[Python学习笔记1]Python语言基础 数学运算符 字符串 列表

这个系列是我在学习Python语言的过程中记录的笔记,主要是一些知识点汇总,而非学习教程,可供有一定编程基础者参考.文中偏见和不足难以避免,仅供参考,欢迎批评指正. 本系列笔记主要参考文献是官网文档:http://docs.python.org/.在此向文档编辑者致谢.请勿将本文用于商业用途. 一.Python语言介绍 首先,Python是一种广泛应用的通用高级编程语言,具有较高的抽象层次,支持面向对象的编程方法.其具有高级的数据结构和许多方便的库文件,可以完成文件IO.系统调用.网络编程,甚至

【安全牛学习笔记】python学习笔记

python装饰器 装饰器本质上是一个函数,该函数用来处理其他函数,它可以让其他函数在不需要修改代码的前提下增加额外的功能,装饰器的返回值也是一个函数对象.它经常用于有切面需求的场景,比如:插入日志.性能测试.事务处理.缓存.权限校验等应用场景.装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码并继续重用.概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能. 简单的装饰器 例: def decro(func): def fn(): print "b

dataquest学习笔记之 python web scrawl 之working with api

dataquest是一个不错的网站,里面的课程短小精炼,非常适合初学者快速入门,并建立一个完善的知识体系. 我是在某 宝上买的 月租dataquest, 一个月也才90元, 链接如下: https://item.taobao.com/item.htm?id=564528265057 本文是学习working with api and web scrapy的笔记; 网站的API都放在服务器上, 客户端向服务器请求api的时候,服务器会一个JSON数据,在Python中,我们一般使用requests

python学习笔记(一):python简介和入门

最近重新开始学习python,之前也自学过一段时间python,对python还算有点了解,本次重新认识python,也算当写一个小小的教程.一.什么是python?python是一种面向对象.解释型的计算机语言,它的特点是语法简洁.优雅.简单易学.在1989诞生,Guido(龟叔)开发.这里的python并不是蟒蛇的意思,而是龟叔非常喜欢一部叫做<Monty Python飞行马戏团>的电视剧,所以以python命名(老外就是这么任性).二.解释型语言和编译型语言编译型语言就是先把写好的程序翻