spyder斷點調試以及numpy整理

1 spyder断点调试:

spyder圖標

从左往右是:
1.开始调试
2.逐行運行代碼
3.查看當前行中的函数、方法的代码
4.把所在的函数、方法运行完
5.运行到下一个断点
6.结束调试

外部调试

python -m pdb test.py

内部运行

# main.py
import pdb

def main():
    pdb.set_trace()
    return "yoho"

print(main())

运行main.py, 可以看到在pdb.set_trace()的地方设置了一个断点。

常用命令
c: 继续执行
w: 显示当前正在执行的代码行
a: 打印当前函数的参数列表
s: 执行当前代码行, 并停在第一个能停的地方(step in)
n: 继续执行到当前函数的下一行, 或者当前行知己诶返回(step over)

2 numpy

2.1 array常用操作

import numpy
vector = numpy.array([5, 10, 15, 20])
matrix = numpy.array([[5, 10, 15], [20, 25, 30], [35, 40, 45]])
print vector
print matrix

###
[ 5 10 15 20]
[[ 5 10 15]
 [20 25 30]
 [35 40 45]]
###
#查看向量、矩阵的size
vector = numpy.array([1, 2, 3, 4])
print(vector.shape)
matrix = numpy.array([[5, 10, 15], [20, 25, 30]])
print(matrix.shape)

###
(4,)
(2, 3)
###
#查看数组中数字的类型
numbers = numpy.array([1, 2, 3, 4])
numbers.dtype

###
dtype('int32')
###
#数组array切片
import numpy
vector = numpy.array([5, 10, 15, 20])
print(vector[0:3]

###
[ 5 10 15]
###

matrix = numpy.array([
                    [5, 10, 15], 
                    [20, 25, 30],
                    [35, 40, 45]
                 ])
print(matrix[:,1])

###
[10 25 40]
###

matrix = numpy.array([
                    [5, 10, 15], 
                    [20, 25, 30],
                    [35, 40, 45]
                 ])
print(matrix[:,0:2]) #0可以省略

###
[[ 5 10]
 [20 25]
 [35 40]]
###

matrix = numpy.array([
                    [5, 10, 15], 
                    [20, 25, 30],
                    [35, 40, 45]
                 ])
print(matrix[1:3,0:2])

###
[[20 25]
 [35 40]]
###
#查值
import numpy
vector = numpy.array([5, 10, 15, 20])
vector == 10

###
array([False,  True, False, False], dtype=bool)
###

matrix = numpy.array([
                    [5, 10, 15], 
                    [20, 25, 30],
                    [35, 40, 45]
                 ])
matrix == 25

###
array([[False, False, False],
       [False,  True, False],
       [False, False, False]], dtype=bool)
###

vector = numpy.array([5, 10, 15, 20])
equal_to_ten = (vector == 10)
print (equal_to_ten)
print(vector[equal_to_ten])

###
[False  True False False]
[10]
###

matrix = numpy.array([
                [5, 10, 15], 
                [20, 25, 30],
                [35, 40, 45]
             ])
second_column_25 = (matrix[:,1] == 25)
print (second_column_25)
print (matrix[second_column_25, :])

###
[False  True False]
[[20 25 30]]
###

#同时查两个两个
vector = numpy.array([5, 10, 15, 20])
equal_to_ten_and_five = (vector == 10) & (vector == 5)
print (equal_to_ten_and_five)

###
[False False False False]
###

vector = numpy.array([5, 10, 15, 20])
equal_to_ten_or_five = (vector == 10) | (vector == 5)
print (equal_to_ten_or_five)
vector[equal_to_ten_or_five] = 50
print(vector)

###
[ True  True False False]
[50 50 15 20]
###

matrix = numpy.array([
            [5, 10, 15], 
            [20, 25, 30],
            [35, 40, 45]
         ])
second_column_25 = matrix[:,1] == 25
print second_column_25
matrix[second_column_25, 1] = 10
print (matrix)

###
[False  True False]
[[ 5 10 15]
 [20 10 30]
 [35 40 45]]
###
import numpy
#转换数组中元素的类型
vector = numpy.array(["1", "2", "3"])
print (vector.dtype)
print (vector)
vector = vector.astype(float)
print (vector.dtype)
print (vector)

###
|S1
['1' '2' '3']
float64
[ 1.  2.  3.]
###
import numpy
#求和操作
vector = numpy.array([5, 10, 15, 20])
vector.sum()

###
50
###

matrix = numpy.array([
                [5, 10, 15], 
                [20, 25, 30],
                [35, 40, 45]
             ])
#按列求和
matrix.sum(axis=1)
#按行求和
matrix.sum(axis=0)

###
array([ 30,  75, 120])
array([60, 75, 90])
###
#没有值的地方插入0值
import numpy
world_alcohol = numpy.genfromtxt("world_alcohol.txt", delimiter=",")
#显示表
is_value_empty = numpy.isnan(world_alcohol[:,4])
#显示为nan的索引
world_alcohol[is_value_empty, 4] = '0'
alcohol_consumption = world_alcohol[:,4]
alcohol_consumption = alcohol_consumption.astype(float)
total_alcohol = alcohol_consumption.sum()
average_alcohol = alcohol_consumption.mean()
#输出和
print (total_alcohol)
#输出平均值
print (average_alcohol)
u = array([[1,2],[3,4]])
m = u.tolist()   #转换为list
m.remove(m[0])    #移除m[0]
m = np.array(m)    #转换为array

numpy.squeeze()

压缩维度,即把shape中为1的维度去掉


numpy.c_

将切片对象按列转换为连接。


2.2 numpy的增删改查

import numpy as np
 a = np.array([[1,2],[3,4],[5,6]])#创建3行2列二维数组。
>>> a
array([[1, 2],
       [3, 4],
       [5, 6]])
>>> a = np.zeros(6)#创建长度为6的,元素都是0一维数组
>>> a = np.zeros((2,3))#创建2行3列,元素都是0的二维数组
>>> a = np.ones((2,3))#创建2行3列,元素都是1的二维数组
>>> a = np.empty((2,3)) #创建2行3列,未初始化的二维数组
>>> a = np.arange(6)#创建长度为6的,元素都是0一维数组array([0, 1, 2, 3, 4, 5])
>>> a = np.arange(1,7,1)#结果与np.arange(6)一样。第一,二个参数意思是数值从1〜6,不包括7.第三个参数表步长为1.
a = np.linspace(0,10,7) # 生成首位是0,末位是10,含7个数的等差数列[  0.           1.66666667   3.33333333   5.         6.66666667  8.33333333  10.        ]
a = np.logspace(0,4,5)#用于生成首位是10**0,末位是10**4,含5个数的等比数列。[  1.00000000e+00   1.00000000e+01   1.00000000e+02   1.00000000e+03 1.00000000e+04]

2.2.1 增,矩阵拼接函数:vstack(),hstack(),stack(),concatenate()

vstack() 上下拼接

例子:


vstack()函数

hsack() 左右拼接

例子:


hstack()函数

stack()直接堆叠

stack()函数

concatenate()

2.2.2 查,出了上面array的切片等等操作主要是where函数的使用

np.where(condition, x, y),第一个参数为一个布尔数组,第二个参数和第三个参数可以是标量也可以是数组。

cond = numpy.array([True,False,True,False])
a = numpy.where(cond,-2,2)# [-2  2 -2  2]
cond = numpy.array([1,2,3,4])
a = numpy.where(cond>2,-2,2)# [ 2  2 -2 -2]
b1 = numpy.array([-1,-2,-3,-4])
b2 = numpy.array([1,2,3,4])
a = numpy.where(cond>2,b1,b2) # 长度须匹配# [1,2,-3,-4]

2.2.3 删,方法很多,主要记录delete


>>> a = np.array([[1,2],[3,4],[5,6]])
>>> np.delete(a,1,axis = 0)#删除a的第二行。
array([[1, 2],
       [5, 6]])
>>> np.delete(a,(1,2),0)#删除a的第二,三行。
array([[1, 2]])
>>> np.delete(a,1,axis = 1)#删除a的第二列。
array([[1],
       [3],
       [5]])

2.2.4 改,使用常用array操作即可

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

推荐阅读更多精彩内容

  • 一.NumPy的引入 标准安装的Python中用列表(list)保存一组值,可以用来当作数组使用,不过由于列...
    wlj1107阅读 996评论 0 2
  • 先决条件 在阅读这个教程之前,你多少需要知道点python。如果你想从新回忆下,请看看Python Tutoria...
    舒map阅读 2,555评论 1 13
  • NumPy是Python中关于科学计算的一个类库,在这里简单介绍一下。 来源:https://docs.scipy...
    灰太狼_black阅读 1,219评论 0 5
  • Numpy是Python的第第三方模块,用于科学计算。 1.属性 列表转化为数组: 2. array的创建 指定数...
    井底蛙蛙呱呱呱阅读 3,339评论 0 10
  • 工作笔记(不加附注了) 由于今天忘了带复读机,所以晚间没有联系,今天共计练习时间1.40。即将寻找材料,复习。 晚...
    忽尔今至阅读 208评论 0 0