Python數據分析之Numpy學習 2——NumPy 基礎 ndarray對象

2020-12-15 韭菜學院

Python數據分析之Numpy學習 2 —— NumPy 基礎學習

NumPy(Numerical Python)是高性能科學計算和數據分析的基礎包。NumPy的主要對象是同構數據多維容器(homogeneous multidimensional array)——ndarray,也就是說每一個ndarray都是一個相同類型元素組成的表格(二維)。在NumPy中維度(dimensions)叫做軸(axes),軸的個數叫做秩(rank)。軸這個概念必須牢記,否則放棄吧。首先軸是從0開始計的,0代表最高維,次高維是1,以此類推。

約定:

import numpy as np

ndarray對象的常用屬性

創建ndarray

函數說明

np.array(data,dtype=None, order=None)

將數據data(列表、元組、數組或其他序列類型)轉換為ndarray。要麼推斷出dtype,要麼顯示指定dtype。默認直接複製數據。order默認是A(可能是C可能是F還可能是其它)

np.asarray(data, dtype=None, order=None)

將輸入數據轉換為ndarray,data同上還可以是ndarray,如果是ndarray就不進行複製。dtype同上,order是重塑中行優先C還是列優先F,默認C語言風格。

np.arange(10,30,5,dtype=None)

開始,結束,步長和內置的range相同

np.ones( (2,3,4), dtype=None) 、np.ones_like(a)

根據指定的形狀和dtype創建一個全1的數組。ones_like以另一個數組為參數,創建形狀和dtype相同的全1數組。

np.zeros() 、np.zeros_like()

全0數組,類似ones和ones_like。

np.empty() 、np.empty_like()

創建數組,只分配內存空間但不填充任何值,所以返回的是垃圾值。類似ones和ones_like。

np.eye(N, M=None, k=0, dtype=) 、np.identity(n, dtype=None)

eye創建的是N*M的數組,默認M=N,k取整數,正數對角線向上移k,負數對角線向下移k。identity創建一個N*N單位矩陣(對角線為1,其餘全0)的數組

示例 array

numpy.array(object, dtype=None, copy=True, order=None, subok=False, ndmin=0)

import numpy as npa = np.array([1,2,3]) print a

輸出如下:

[1, 2, 3]

# 多於一個維度 import numpy as npa = np.array([[1, 2], [3, 4]]) print a

輸出如下:

[[1, 2][3, 4]]

# dtype 參數 import numpy as npa = np.array([1, 2, 3], dtype = complex) print a

輸出如下:

[ 1.+0.j, 2.+0.j, 3.+0.j]

索引,切片和迭代

一維數組可以被索引、切片和迭代,就像列表和其它Python序列。

>>> a = arange(10)**3>>> aarray([ 0, 1, 8, 27, 64, 125, 216, 343, 512, 729])>>> a[2]8>>> a[2:5]array([ 8, 27, 64])>>> a[:6:2] = -1000 # equivalent to a[0:6:2] = -1000; from start to position 6, exclusive, set every 2nd element to -1000>>> aarray([-1000, 1, -1000, 27, -1000, 125, 216, 343, 512, 729])>>> a[ : :-1] # reversed aarray([ 729, 512, 343, 216, 125, -1000, 27, -1000, 1, -1000])>>> for i in a:... print i**(1/3.),...nan 1.0 nan 3.0 nan 5.0 6.0 7.0 8.0 9.0

多維數組可以每個軸有一個索引。這些索引由一個逗號分隔的元組給出。

>>> def f(x,y):... return 10*x+y...>>> b = fromfunction(f,(5,4),dtype=int)>>> barray([[ 0, 1, 2, 3], [10, 11, 12, 13], [20, 21, 22, 23], [30, 31, 32, 33], [40, 41, 42, 43]])>>> b[2,3]23>>> b[0:5, 1] # each row in the second column of barray([ 1, 11, 21, 31, 41])>>> b[ : ,1] # equivalent to the previous examplearray([ 1, 11, 21, 31, 41])>>> b[1:3, : ] # each column in the second and third row of barray([[10, 11, 12, 13], [20, 21, 22, 23]])

組合(stack)不同的數組

幾種方法可以沿不同軸將數組堆疊在一起:

>>> a = floor(10*random.random((2,2)))>>> aarray([[ 1., 1.], [ 5., 8.]])>>> b = floor(10*random.random((2,2)))>>> barray([[ 3., 3.], [ 6., 0.]])>>> vstack((a,b))array([[ 1., 1.], [ 5., 8.], [ 3., 3.], [ 6., 0.]])>>> hstack((a,b))array([[ 1., 1., 3., 3.], [ 5., 8., 6., 0.]])

函數

column_stack

以列將一維數組合成二維數組,它等同與

vstack

對一維數組。

>>> column_stack((a,b)) # With 2D arraysarray([[ 1., 1., 3., 3.], [ 5., 8., 6., 0.]])>>> a=array([4.,2.])>>> b=array([2.,8.])>>> a[:,newaxis] # This allows to have a 2D columns vectorarray([[ 4.], [ 2.]])>>> column_stack((a[:,newaxis],b[:,newaxis]))array([[ 4., 2.], [ 2., 8.]])>>> vstack((a[:,newaxis],b[:,newaxis])) # The behavior of vstack is differentarray([[ 4.], [ 2.], [ 2.], [ 8.]])

row_stack

函數,另一方面,將一維數組以行組合成二維數組。

對那些維度比二維更高的數組,

hstack

沿著第二個軸組合,

vstack

沿著第一個軸組合,

concatenate

允許可選參數給出組合時沿著的軸。

函數和方法(method)總覽

這是個NumPy函數和方法分類排列目錄。這些名字連結到NumPy示例,你可以看到這些函數起作用。[^5]

創建數組

arange, array, copy, empty, empty_like, eye, fromfile, fromfunction, identity, linspace, logspace, mgrid, ogrid, ones, ones_like, r , zeros, zeros_like

轉化

astype, atleast 1d, atleast 2d, atleast 3d, mat

操作

array split, column stack, concatenate, diagonal, dsplit, dstack, hsplit, hstack, item, newaxis, ravel, repeat, reshape, resize, squeeze, swapaxes, take, transpose, vsplit, vstack

詢問

all, any, nonzero, where

排序

argmax, argmin, argsort, max, min, ptp, searchsorted, sort

運算

choose, compress, cumprod, cumsum, inner, fill, imag, prod, put, putmask, real, sum

基本統計

cov, mean, std, var

基本線性代數

cross, dot, outer, svd, vdot

相關焦點

  • python數據分析專題 (9):numpy基礎
    NumPy(Numerical Python的簡稱)是高性能科學計算和數據分析的基礎包。NumPy最重要的一個特點就是其N維數組對象(即ndarray),該對象是一個快速而靈活的大數據集容器。新手可能不理解這句話的含義,這個需要慢慢去理解 。總之,知道numpy是python數據分析最重要的基礎包就可以了。
  • 學員筆記||Python數據分析之:numpy入門(一)
    (點擊上方公眾號,快速關注一起學AI)這是我學<Python數據分析>時整理出來的numpy基礎速讀筆記,內容大致分為
  • 第 81 天:NumPy Ndarray 對象及數據類型
    上一篇文章中我們詳細介紹了 NumPy 的功能及用途,本章節著重介紹 NumPy 一個神奇的對象 Ndarray 以及 NumPy 數據類型,包括兩者的用途,接下來就開啟神奇之旅吧。標準安裝的 Python 中用列表 (list) 保存一組值,它可以用來當作數組使用,不過由於列表的元素可以是任何對象,因此列表中所保存的是對象的指針。
  • Python數據分析 | 第四章 Numpy 基礎之ndarray
    雖然NumPy提供了通用的數值數據處理的計算基礎,但大多數讀者可能還是想將pandas作為統計和分析工作的基礎,尤其是處理表格數據時。pandas還提供了一些NumPy所沒有的領域特定的功能,如時間序列處理等。❝🐰 筆記:Python的面向數組計算可以追溯到1995年,Jim Hugunin創建了Numeric庫。
  • 數據分析-numpy庫快速了解
    1.numpy是什麼庫NumPy是一個開源的Python科學計算基礎庫,包含: 一個強大的N維數組對象 ndarray 廣播功能函數 整合C/C++/Fortran代碼的工具 線性代數、傅立葉變換、隨機數生成等功能
  • Python數據分析基礎之NumPy學習 (上)
    數組計算之 NumPy (上)數組計算之 NumPy (下)科學計算之 SciPy數據結構之 Pandas基本可視化之 Matplotlib統計可視化之 Seaborn交互可視化之 Bokeh炫酷可視化之 PyEcharts
  • NumPy ndarray數組的創建
    下面將介紹Numpy的一些常用方法,尤其是與機器學習、深度學習相關的一些內容。NumPy 封裝了一個新的數據類型 ndarray(N-dimensional Array),它是一個多維數組對象。該對象封裝了許多常用的數學運算函數,方便我們做數據處理、數據分析等。那麼,如何生成 ndarray 呢?
  • Python數據分析 - Numpy
    前言NUMPY(以下簡稱NP)是Python數據分析必不可少的第三方庫,np的出現一定程度上解決了Python運算性能不佳的問題,同時提供了更加精確的數據類型。如今,np被Python其它科學計算包作為基礎包,已成為Python 數據分析的基礎,可以說,NP是SciPy、Pandas等數據處理或科學計算庫最基本的函數功能庫。因此,理解np的數據類型對python數據分析十分有幫助。下面,本文將介紹Np的常用操作和基本數據類型。NP提供了以下重點功能。
  • Python 數據分析:NumPy 基礎知識
    簡介NumPy(Numerical Python)是一個開源的 Python 科學計算擴展庫,主要用來處理任意維度數組與矩陣,通常對於相同的計算任務,使用 NumPy 要比直接使用 Python 基本數據結構要簡單、高效的多。安裝使用 pip install numpy 命令即可。2.
  • Python數據科學Numpy基礎20問
    1、什麼是numpy?一言以蔽之,numpy是python中基於數組對象的科學計算庫。提煉關鍵字,可以得出numpy以下三大特點:2、如何安裝numpy?因為numpy是一個python庫,所以使用python包管理工具pip或者conda都可以安裝。
  • numpy庫學習總結(基礎知識)
    最近在學習Python中OpenCV庫,學習花了很多時間,發現基礎知識很重要,尤其是numpy這個庫,在進行程序開發時,處理大量類似數組這種數據結構時,它的重要性等同於Python中的列表,像前篇我們寫的《使用Python中OpenCV庫創建一幅圖片的RGB通道圖片》中,對於圖片的處理
  • 學員筆記|Python數據分析之numpy入門(三)
    ndarray對象的轉置np.arange(16).reshape(2,8).shape這和python下的排序很像 。對象的ndim是2(也就是一個矩陣)那麼排序就可以在不同的維度上進行。寫在最後:本節記錄了褚老師numpy課程中的ndarray對象的運算,矩陣乘法,轉置,排序與廣播算法。比前兩篇內容多,小夥伴們需要更多的練習,才能理解。
  • Python數據分析之numpy學習(一)
    在學完《廖雪峰Python2.7教程》感覺受益匪淺,掌握了基本的語法之後開始接觸用Python進行數據分析。這裡向大家推薦兩本書《Python數據分析》和《利用Python進行數據分析》,而這兩本書也是目前我正在學習的材料,雖然這兩本書都是基於Python2.x,但對於Python3.x也能正常運行。
  • 數據分析入門 | numpy基礎:數組和矢量計算
    本文是一篇對《利用Python進行數據分析》的學習筆記,如有錯誤,歡迎評論指正。注意:因為這是本人的第二次學習,所以一些關於numpy的基礎知識會跳過,想要全面學習的小夥伴可以關注我的公眾號,私信文末的關鍵詞獲取pdf版《利用Python進行數據分析》、本文相關代碼以及我個人推薦的相關博客。
  • Python之numpy數組學習(一)
    Numpy中的多維數組稱為ndarray,它有兩個組成部分。在數組的處理過程中,原始數據不受影響,變化的只是元數據。Numpy數組通常是由相同種類的元素組成,即數組中數據類型必須一致。好處是:數組元素類型相同,可輕鬆確定存儲數組所需的空間大小。同時,numpy可運用向量化運算來處理整個數組。Numpy數組的索引從0開始。
  • Python數據分析之numpy數組全解析
    1 什麼是numpy2 numpy數組創建2.1 基本方法:np.array()2.2 通用方法:np.ones()、np.zeros()、np.eye()2.3 讀取外部數據3 numpy中數組的數據類型4 numpy中數組的形狀5 索引與切片5.1 按索引取值
  • Python必備基礎:這些NumPy的神操作你都掌握了嗎?
    本文簡單介紹NumPy模塊的兩個基本對象ndarray、ufunc,介紹ndarray對象的幾種生成方法及如何存取其元素、如何操作矩陣或多維數組、如何進行數據合併與展平等。最後說明通用函數及廣播機制。作者:吳茂貴,王冬,李濤,楊本法
  • AI學習準備工作以及numpy學習
    使用《利用python進行數據分析》(第二版)進行學習,僅需要學習資料的小夥伴可直接跳轉至文章最下方。
  • Python乾貨 | Python數據分析之numpy數組全解析
    1 什麼是numpy2 numpy數組創建2.1 基本方法:np.array()2.2 通用方法:np.ones()、np.zeros()、np.eye()2.3 讀取外部數據3 numpy中數組的數據類型4 numpy中數組的形狀5 索引與切片5.1 按索引取值
  • 從numpy開啟Python數據科學之旅
    一個路徑就是從純程式語言的角度來學習Python的,包括Python編程基礎、編寫函數、Python高級特性、函數式編程、面向對象編程、多進程和多線程、常用內建模塊和第三方庫等等,旨在學習和鍛鍊編程思維,提高小編自身的coding能力。