IPython与Numpy

一、启动程序

执行以下命令:
  jupyter notebook
注意以下几点:
  - 打开地址为当前bash的目录,默认的根目录
  - 浏览器地址为http://localhost:8888/
  - 通过control -c 终止jupyter程序
几个基本操作:
  - 双击d:删除当前cell
  - 单击M:转为markdown文档
  - markdown文档下运行变为预览模式

二、IPython的帮助文档

1、使用help命令
  - help(len)
2、使用?和??
  - len?
  - len??
3、tab自动补全
4、通过shift+tab和shift+tab+tab
  - shift+tab:查找某函数需要赋的参数名
  - shift+tab+tab:查找某函数需要赋的参数名的具体描述以及示例

三、IPython的魔法命令

1、运行外部python文件
  - %run 外部python文件路径
  - 通过该python文件中的函数名直接调用
2、运行计时
  - %time statement(调用函数): 一般用于耗时长的代码段
  - %time statement(调用函数): 一般用于耗时短的代码段
  注意: 可以使用两个百分号来测试多行代码的平均运行时间
3、执行linux命令
  - 在linux指令之前加上!,即可在python当中执行linux指令
5、更多魔法指令
  - lsmagic

四、notebook的快捷键

- Enter:转入编辑模式
- Ctrl-Enter:运行本单元
- Shift-Enter:运行本单元,选中下个单元
- Alt-Enter:运行本单元,在下面插入一个单元并选中新插入的单元

Y :单元转入代码状态
M :单元转入markdown状态 

A :在上方插入新单元
B :在下方插入新单元

五、Numpy库

# 导入Numpy模块
  - import numpy as np
# 查看版本
  - np.__version__

六、ndarray的创建

# 使用np.array创建
  - np.array([1,2,3,4]) # 一维
  - np.array([[1,2,3,4],[5,6,7,8]]) # 二维
# 使用np的routines函数创建
  - np.ones(shape,dtype=None)  # 全为1
  - np.zeros(shape,dtype=None) # 全为0
  - np.full(shape, fill_value, dtype=None) # 按照fill_value填充
  - np.eye(shape,k=0,dtype=None) # 按照shape排列,k=0时,对应的对角线全为1,其他为0。从坐标(0,0)开始数,往右k值+1,往下k值-1
  - np.linespace(start,stop,num,retstep=False,endpoint=True) # 从start到stop,分为num份,retstep:等分的间距,endpoint:是否以stop结尾。
  - np.arange([start, ]stop, [step, ]dtype=None) # 类比于python的range
  - np.random.randint(0,150,size=(3,3)) # 随机取[0,150)之间的数,按照(3,3)排列
  - np.random.randn(2,3) # 生成一个2行3列的标准正态分布
  - np.random.normal(loc=0,scale=1,size=20) # 正态分布(loc:对应横坐标,scale:对应方差,size对应形状(shape))
  - np.random.random(size=None) # 随机生成(0,1)之间的数,size对应形状(shape)
  - np.random.randint(0,150,size=(3,3)) # 随机生成[0,150)的整数,3行3列

七、ndarray的属性

# 4个必记参数:ndim维度、shape形状、size总长度、dtype元素类型
# 例如:
  - l1 = [[1,2,3,4],[5,6,7,8]]
  - n1 = np.array(l1)
  - n1.ndim # 2
  - n1.shape # (2,4)
  - n1.size # 8
  - n1.dtype # dtype('int32')

八、ndarray的基本操作

1、索引(一维与列表一致,多维时同理)
  - l1 = [[1,2,3],[4,5,6],[7,8,9]]
  - n1 = np.array(l1)
  - n1[0] # [1,2,3]
  - n1[0][1] # 3
2、切片(一维与列表完全一致 多维时同理)
  - l2 = [[1,2,3],[4,5,6],[7,8,9]]
  - n2 = np.array(l1)
  - n2[0][0:2] # [1,2]
  - n2[0][::-1] # 反转[3,2,1]
3、变形(使用reshape函数,注意参数是一个tuple!)
  - n3 = np.arange(6) # array([0, 1, 2, 3, 4, 5])
  - np.reshape(n2,(2,3)) # array([[0, 1, 2],[3, 4, 5]])
4、级联
  - a1 = np.random.randint(0,100,size=(5,5))
  - a2 = np.random.randint(0,100,size=(5,5))
  - display(a1,a2)
  - np.concatenate()级联:
    - np.concatenate((a1,a2),axis=1)  # 水平级联(两组数据水平连接,成一行)
    - np.concatenate((a1,a2),axis=0) # 垂直级联(两组数据垂直连接,成一列)
  - np.hstack()水平级联:
    - np.hstack((a1,a2))
  - np.vstack()垂直级联:
    - np.vstack((a1,a2))
5、切分
  - a3 = np.arange(9)
  - np.split切分:
    - np.split(a3,3) # [array([0, 1, 2]), array([3, 4, 5]), array([6, 7, 8])]
    - np.split(a3,(3,4)) # [array([0, 1, 2]), array([3]), array([4, 5, 6, 7, 8])]
    - np.split(a3,(3,4,6)) # [array([0, 1, 2]), array([3]), array([4, 5]), array([6, 7, 8])]
  - np.hsplit水平切分:
    - np.hspilt(a3.5) # 每列取5个(按列切分)
  - np.vsplit垂直切分:
    - np.vsplit(a3,5) # 每行取5个(按行切分)
6、副本
    所有赋值运算不会为ndarray的任何元素创建副本。对赋值后的对象的操作也对原来的对象生效。
    可使用copy()函数创建副本

九、ndarray的集合操作

ndarray.png

十、ndarray的矩阵操作

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

推荐阅读更多精彩内容