1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python中ndarray对象实例化_Python数据分析之Numpy学习 2——NumPy 基础 ndarray对象

python中ndarray对象实例化_Python数据分析之Numpy学习 2——NumPy 基础 ndarray对象

时间:2021-12-19 04:07:34

相关推荐

python中ndarray对象实例化_Python数据分析之Numpy学习 2——NumPy 基础 ndarray对象

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。