python中ndarray对象实例化_Python数据分析之Numpy学习 2——NumPy 基础 ndarray对象
Python數(shù)據(jù)分析之Numpy學(xué)習(xí) 2 —— NumPy 基礎(chǔ)學(xué)習(xí)
NumPy(Numerical Python)是高性能科學(xué)計(jì)算和數(shù)據(jù)分析的基礎(chǔ)包。NumPy的主要對(duì)象是同構(gòu)數(shù)據(jù)多維容器(homogeneous multidimensional array)——ndarray,也就是說(shuō)每一個(gè)ndarray都是一個(gè)相同類型元素組成的表格(二維)。在NumPy中維度(dimensions)叫做軸(axes),軸的個(gè)數(shù)叫做秩(rank)。軸這個(gè)概念必須牢記,否則放棄吧。首先軸是從0開(kāi)始計(jì)的,0代表最高維,次高維是1,以此類推。
約定:
import numpy as np
ndarray對(duì)象的常用屬性
創(chuàng)建ndarray
函數(shù)說(shuō)明
np.array(data,dtype=None, order=None)
將數(shù)據(jù)data(列表、元組、數(shù)組或其他序列類型)轉(zhuǎn)換為ndarray。要么推斷出dtype,要么顯示指定dtype。默認(rèn)直接復(fù)制數(shù)據(jù)。order默認(rèn)是A(可能是C可能是F還可能是其它)
np.asarray(data, dtype=None, order=None)
將輸入數(shù)據(jù)轉(zhuǎn)換為ndarray,data同上還可以是ndarray,如果是ndarray就不進(jìn)行復(fù)制。dtype同上,order是重塑中行優(yōu)先C還是列優(yōu)先F,默認(rèn)C語(yǔ)言風(fēng)格。
np.arange(10,30,5,dtype=None)
開(kāi)始,結(jié)束,步長(zhǎng)和內(nèi)置的range相同
np.ones( (2,3,4), dtype=None) 、np.ones_like(a)
根據(jù)指定的形狀和dtype創(chuàng)建一個(gè)全1的數(shù)組。ones_like以另一個(gè)數(shù)組為參數(shù),創(chuàng)建形狀和dtype相同的全1數(shù)組。
np.zeros() 、np.zeros_like()
全0數(shù)組,類似ones和ones_like。
np.empty() 、np.empty_like()
創(chuàng)建數(shù)組,只分配內(nèi)存空間但不填充任何值,所以返回的是垃圾值。類似ones和ones_like。
np.eye(N, M=None, k=0, dtype=) 、np.identity(n, dtype=None)
eye創(chuàng)建的是N*M的數(shù)組,默認(rèn)M=N,k取整數(shù),正數(shù)對(duì)角線向上移k,負(fù)數(shù)對(duì)角線向下移k。identity創(chuàng)建一個(gè)N*N單位矩陣(對(duì)角線為1,其余全0)的數(shù)組
示例 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]
# 多于一個(gè)維度 import numpy as npa = np.array([[1, 2], [3, 4]]) print a
輸出如下:
[[1, 2][3, 4]]
# dtype 參數(shù) import numpy as npa = np.array([1, 2, 3], dtype = complex) print a
輸出如下:
[ 1.+0.j, 2.+0.j, 3.+0.j]
索引,切片和迭代
一維數(shù)組可以被索引、切片和迭代,就像列表和其它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
多維數(shù)組可以每個(gè)軸有一個(gè)索引。這些索引由一個(gè)逗號(hào)分隔的元組給出。
>>> 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)不同的數(shù)組
幾種方法可以沿不同軸將數(shù)組堆疊在一起:
>>> 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.]])
函數(shù)
column_stack
以列將一維數(shù)組合成二維數(shù)組,它等同與
vstack
對(duì)一維數(shù)組。
>>> 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
函數(shù),另一方面,將一維數(shù)組以行組合成二維數(shù)組。
對(duì)那些維度比二維更高的數(shù)組,
hstack
沿著第二個(gè)軸組合,
vstack
沿著第一個(gè)軸組合,
concatenate
允許可選參數(shù)給出組合時(shí)沿著的軸。
函數(shù)和方法(method)總覽
這是個(gè)NumPy函數(shù)和方法分類排列目錄。這些名字鏈接到NumPy示例,你可以看到這些函數(shù)起作用。[^5]
創(chuàng)建數(shù)組
arange, array, copy, empty, empty_like, eye, fromfile, fromfunction, identity, linspace, logspace, mgrid, ogrid, ones, ones_like, r , zeros, zeros_like
轉(zhuǎn)化
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
詢問(wèn)
all, any, nonzero, where
排序
argmax, argmin, argsort, max, min, ptp, searchsorted, sort
運(yùn)算
choose, compress, cumprod, cumsum, inner, fill, imag, prod, put, putmask, real, sum
基本統(tǒng)計(jì)
cov, mean, std, var
基本線性代數(shù)
cross, dot, outer, svd, vdot
總結(jié)
以上是生活随笔為你收集整理的python中ndarray对象实例化_Python数据分析之Numpy学习 2——NumPy 基础 ndarray对象的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Win10技巧:16个系统优化设置小技巧
- 下一篇: 全图范围设置(转自Esri中国社区)