diff(),stack(),hstack(),vstack(),np.ones(),np.zeros()

diff()函数:

作用:矩阵中后一个元素减去前一个元素的差值
diff(a,n=b,axis=0):进行b次,axis=0代表从上向下减,跨行,结果会少一行
实例代码与效果

a=[[5, 6, 5, 0],
    [5, 1, 7, 4],
    [0, 8, 0, 4]]
b = np.diff(a,b=1,axis=0)

效果图

>>> b
array([[ 0, -5,  2,  4],
       [-5,  7, -7,  0]])
>>>

再来看看axis=1的情况,就是从后向前依次横着减,跨列,结果少一列

a=[[5, 6, 5, 0],
    [5, 1, 7, 4],
    [0, 8, 0, 4]]
c= np.diff(a,b=1,axis=1)

效果图

>>> c
array([[ 1, -1, -5],
       [-4,  6, -3],
       [ 8, -8,  4]])

stack(),hstack(),vstack()函数

这三个函数需要放在一起说
首先stack(),理解了这个函数,剩下的两个没什么难度
stack():
作用:堆叠数组(比较抽象,但是请向下看)
stack(arrays, axis=0):arrays表示数组,axis指的是维度
首先看一个例子

import numpy as np
a=[[1,2,3],
   [4,5,6]]

print("增加一维,维度的下标0")
c=np.stack(a,axis=0)

print("增加一维,维度的下标1")
c=np.stack(a,axis=1)

下面是结果

a:
[[1, 2, 3], [4, 5, 6]]
c:
增加一维,维度的下标0
[[1 2 3]
 [4 5 6]]
增加一维,维度的下标1
c:
[[1 4]
 [2 5]
 [3 6]]

首先想说一点,对于a这个数组来说,只能使用axis=0或者axis=1这两个维度,而且使用stack的时候,数组内的元素要格式统一,[1,2,3]和[4,5,6]的形状是一样的,所以可以使用
然后 当axis=0的时候就是分两步
1,在a的元素外层套上个维度,变成[[123]],[[456]]
2,折叠两个元素,就是串起来,得到两个结果[[123],[456]]
当axis=1的时候也分两步
1,在a的元素内层套上一个维度,变成[ [1],[2],[3] ], [ [4],[5],[6] ]
2,依旧是折叠元素,串起来,但是这个时候要把a中原本两个元素的相同位置的元素串起来
[ [1] [2] [3]
[4] [5] [6] ]
串起来
[[1 4] [2 5] [3 6]],这就是最后结果了,因为数组本啦就只能套两层维度
下面来看理解没有
代码

import numpy as np
a=[[1,2,3,4],
   [5,6,7,8],
   [9,10,11,12]]


print("增加一维,新维度的下标为0")
c=np.stack(a,axis=0)


print("增加一维,新维度的下标为1")
c=np.stack(a,axis=1)

效果图

[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]

增加一维,新维度的下标为0
[[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]]
增加一维,新维度的下标为1
[[ 1  5  9]
 [ 2  6 10]
 [ 3  7 11]
 [ 4  8 12]]

三维的情况

import numpy as np
a=[[1,2,3],
[4,5,6]]
b=[[1,2,3],
[4,5,6]]
c=[[1,2,3],
[4,5,6]]

print("增加一维,新维度的下标为0")
d=np.stack((a,b,c),axis=0)

print("增加一维,新维度的下标为1")
d=np.stack((a,b,c),axis=1)

print("增加一维,新维度的下标为2")
d=np.stack((a,b,c),axis=2)

输出:

增加一维,新维度的下标为0
[[[1 2 3]
  [4 5 6]]

 [[1 2 3]
  [4 5 6]]

 [[1 2 3]
  [4 5 6]]]
增加一维,新维度的下标为1
[[[1 2 3]
  [1 2 3]
  [1 2 3]]

 [[4 5 6]
  [4 5 6]
  [4 5 6]]]
增加一维,新维度的下标为2
[[[1 1 1]
  [2 2 2]
  [3 3 3]]

 [[4 4 4]
  [5 5 5]
  [6 6 6]]]

axis=0增加一维的情况与2维的时候类似不再多说
axis==1的时候也是分两步
1,先把abc放一块

[
    [1,2,3],[1,2,3],[1,2,3]
    ,
    [4,5,6],[4,5,6],[4,5,6]
]

2,在元素外面套维度得到结果,也有点类似=1的时候

[
    [[1,2,3],[1,2,3],[1,2,3]]
    ,
    [[4,5,6],[4,5,6],[4,5,6]]
]

axis=3的时候,维度加在最内层,元素单个可以打乱,相同位置的放在一起,也是分两步
1,abc放一起

[
    [1,1,1  ,  2,2,2  , 3,3,3],
    [4,4,4  ,  5,5,5  , 6,6,6]
]

2,给最内层元素套上维度得到结果

[
    [[1,1,1]  ,  [2,2,2]  , [3,3,3]],
    [[4,4,4]  ,  [5,5,5]  , [6,6,6]]
]

vstack() 沿着竖直方向将矩阵堆叠起来。
例子

import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
res = np.vstack((arr1, arr2))

结果

array([[1, 2, 3],
       [4, 5, 6]])

hstack() 沿着水平方向将矩阵堆叠起来。
例子:

>>> arr1 = np.array([1, 2, 3])
>>> arr2 = np.array([4, 5, 6])
>>> res = np.hstack((arr1, arr2))

结果

>>> res
array([1, 2, 3, 4, 5, 6])

再看一个例子

>>> arr1 = np.array([[1, 2], [3, 4], [5, 6]])
>>> arr2 = np.array([[7, 8], [9, 0], [0, 1]])
>>> res = np.hstack((arr1, arr2))

结果

array([[1, 2, 7, 8],
       [3, 4, 9, 0],
       [5, 6, 0, 1]])

这三个函数就算说完了

np.ones()函数

np.ones(shape,dtype=None,order='C')
shape是形状大小 dtype是类型 order=’c‘是选择c语言风格处理数组,行优先
例子

import numpy as np
ones= np.ones((3,3,2))

结果

>>> ones
array([[[1., 1.],
        [1., 1.],
        [1., 1.]],

       [[1., 1.],
        [1., 1.],
        [1., 1.]],

       [[1., 1.],
        [1., 1.],
        [1., 1.]]])

接下来是np.zeros(),理解为和ones完全一样就好了

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

推荐阅读更多精彩内容

  • 基础篇NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(...
    oyan99阅读 5,052评论 0 18
  • 这三个函数有些相似性,都是堆叠数组,里面最难理解的应该就是stack()函数了,我查阅了numpy的官方文档,在网...
    阿喆_399a阅读 463评论 0 0
  • 介绍 NumPy 是一个 Python 包。 它代表 “Numeric Python”。 它是一个由多维数组对象和...
    喔蕾喔蕾喔蕾蕾蕾阅读 1,701评论 0 5
  • 先决条件 在阅读这个教程之前,你多少需要知道点python。如果你想从新回忆下,请看看Python Tutoria...
    舒map阅读 2,539评论 1 13
  • NumPy是Python中关于科学计算的一个类库,在这里简单介绍一下。 来源:https://docs.scipy...
    灰太狼_black阅读 1,202评论 0 4