numpy[2]

numpy1
numpy2
numpy3

數組的操作

基本索引array[ ]

一. [一維(由0開始數)][二維(由0開始數)]

二. [負號表示由後往回數第幾個(由1開始數)]

三. 由索引修改數組的值

四.返回數組中的非零索引的展開。
numpy.flatnonzero
numpy.nonzero

切片array[::]
  • 切片array[::]
    使用切片時並非重新複製資料,而是傳回子陣列的視圖,想重新複製出資料須使用array[::].copy()。
    注意:row、column都以0為起始列。
    注意:[:]以及[::]的不同,[::-1]第3個值-1表示翻轉。

    1
    1
    2

  • 切片array[[ ]]

    指定某row、column索引
    使用bool索引,必須傳入相應的shape

  • mask與條件切片
    條件切片會傳回一個bool數組,也可以搭配numpy.flatnonzeronumpy.where索引指定條件的切片。
    什麼是掩碼數組?
    mask
    在許多情況下,數據集可能不完整或因無效數據的存在而受到污染。例如,傳感器可能無法記錄數據或記錄無效值。該numpy.ma模塊通過引入掩碼數組提供了一種解決此問題的便捷方法。

    條件索引與mask
    條件索引
    條件索引

  • 查找NAN值
    np.nan需要使用numpy.isnan查詢。

    查找nan值
    修改nan值

重塑
  1. np.reshape()
  2. np.ndarray.flatten(order='C')
    order:'C' 按行,'F' 按列,'A' 原順序展開成一維。
  3. np.transpose(arr, axes)
    與reshape不同,依照原本維度改變形狀。
    arr:要轉置的數組
    axes:整數的列表,對應維度,默認所有維度都會翻轉。
  4. numpy.matrix
  5. numpy.asarray
轉置(翻轉)
  1. np.transpose(arr, axes)
    arr:要轉置的數組
    axes:整數的列表,對應維度,默認所有維度都會翻轉。
  2. ndarray.T
組合與分割
  • 串接:多維數組連接的過程中要注意連接軸的大小相同。
  1. np.concatenate()
  • 一維
  • 二維
  1. np.row_stacknp.column_stack

  2. np.hstacknp.vstack

  • 分割
  1. numpy.split(ary, indices_or_sections, axis)
    ary:被分割的輸入數組
    indices_or_sections:此參數為整數,表示要分割為幾分等大小數組。此參數為一維數組,則表示要分割的位置。
    axis:默認為 0
    1
    2
重複
  • 重複
    numpy.tile
    numpy.repeat
    沿著axis重複[第一個值重複的次數,第二個值重複的次數]
    由內而外(第三層重複的次數,第二層重複的次數,第一層重複的次數)
添加和插入和刪除
  • 添加
  1. np.append(arr, values, axis)
    添加數組中某個位置或某軸的值
    arr:輸入數組
    values:要添加的值
    axis:沿著它完成操作的軸。如果未提供,則輸入數組會被展開
  • 插入
    插入數組中某個位置或某軸的值
  1. numpy.insert(arr, obj, values, axis)
    arr:輸入數組
    obj:在其之前插入值的索引
    values:要插入的值
    axis:沿著它插入的軸,如果未提供,則輸入數組會被展開
  • 刪除
  1. Numpy.delete(arr, obj, axis)
    刪除數組中某個位置或某軸的值
    arr:輸入數組
    obj:可以使用切片,整數或者整數數組,表示要從輸入數組刪除的子數組
    axis:沿著它刪除給定子數組的軸,如果未提供,則輸入數組會被展開

  2. numpy.unique(arr, return_index, return_inverse, return_counts)
    結果為刪除重複(重覆)數組,並排列。
    arr:輸入數組,如果不是一維數組則會展開
    return_index:如果為true,返回結果(新數組)以及結果對應原數組的原數組索引
    return_inverse:如果為true,返回結果以及結果的新數組對應原數組的新數組索引
    return_counts:如果為true,返回結果以及結果的重複次數

網格
  1. np.meshgrid()
    通常使用在數據的矢量化上。它適用於生成網格型數據,可以接受兩個一維數組生成兩個二維矩陣,對應兩個數組中所有的(x,y)對。
  2. np.mgrid()
    與meshgrid類似,但可以處理多維。

f(x,y)=3x^2+5y+16,(1≤x≤3),(4≤y≤6)
f(a,b)=3a^2+5b+16,(1≤a≤3),(4≤b≤6)

  • meshgrid

    1
    2

    z=x+y

  • mgrid

    1
    2
    3

排序

NumPy中提供了各種排序相關功能。這些排序函數實現不同的排序算法,每個排序算法的特徵在於執行速度,最壞情況性能,所需的工作空間和算法的穩定性。下表顯示了三種排序算法的比較。

種類 速度 最壞情況 工作空間 穩定性
'quicksort'(快速排序 1 O(n^2) 0
'mergesort'(歸併排序(混排)) 2 O(n*log(n)) ~n/2
'heapsort'(堆排序 3 O(n*log(n)) 0
  1. numpy.sort(a, axis, kind, order)
    將數組進行排序,返回排序好的數組
    a:要排序的陣列
    axis:沿著它排序陣列的軸,如果沒有陣列會被展開,沿著最後的軸排序
    kind:默認為'quicksort'(快速排序)
    order:如果陣列dtype包含'names',則是要排序dtype的'names'

    1
    2

  2. numpy.argsort(a, axis, kind, order)
    將數組進行排序,返回排序好結果對應原數組的原數組索引
    a:要排序的陣列
    axis:沿著它排序陣列的軸,如果沒有陣列會被展開,沿著最後的軸排序
    kind:默認為'quicksort'(快速排序)
    order:如果陣列dtype包含'names',則是要排序dtype的'names'

    1
    2

  3. numpy.partition()
    選定一個pivot只進行一次的快速排序,以pivot進行分區。輸入pivot為排序後的第幾個數,傳回分區好的數組。

  4. numpy.argpartition()
    選定一個pivot只進行一次的快速排序,以pivot進行分區。輸入pivot為排序後的第幾個數,傳回分區好的結果對應原數組的原數組索引。

  5. numpy.searchsorted(a, v, side='left', sorter=None)
    a:所需排序的數組
    v:待查詢索引的元素值
    side:查詢索引時的方向,其中:′left′為從左至右;′right′為從右至左
    sorter:一個字符串或列表,可以設置按照某個屬性進行排序

    另類用法:將數值分組
    利用searchsorted特性可以用來分組以及計數

計數

  • 計數
  1. 一般我們常用使用Python內建collections.Counter

  2. np.count_nonzero

  3. np.add.at()

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

推荐阅读更多精彩内容

  • 自然衝擊療法由丁愚仁老師發明,又稱「禪拍」,「拍打」,"自然拍打"。 丁師及其團隊總結經驗,不同的各種病症(含絕症...
    YouAreMyMusic阅读 2,250评论 0 4
  • numpy1numpy2numpy3 匯入numpy Numpy數據類型 每個python內建類型都有一個唯一定義...
    RJ阿杰阅读 676评论 0 1
  • 为何叫做 shell ? shell prompt(PS1) 与 Carriage Return(CR) 的关系?...
    Zero___阅读 3,145评论 3 49
  • 勇利的運氣糟透了。 他覺得只有這個原因可以解釋到底為什麼這種事情會發生在他身上。 他並不覺得自己是個沒禮貌的人,但...
    AmandaHuang阅读 981评论 0 2
  • 费尽心机把儿子从老家提前一天带回来,上午给他洗了个澡,他玩的不亦乐乎,以至于最后给他擦身穿衣都不乐意,像是我打扰了...
    trb小美mm阅读 189评论 0 0