您的位置:首页 > 编程语言 > Python开发

python之numpy概括总结

2018-01-08 16:05 357 查看
初步学习了numpy模块的使用,在此做总结,以便大家参考,也为以后自己的复习与查询做下记录

Numpy

numpy的主要对象是同种元素的多维数组,所有的元素都必须是一种类型,可通过一个正整数元组索引的元素表格。在numpy中维度称为轴(axes),轴的个数叫做秩(rank)。Numpy的数组类型narray,其常用对象属性:

ndarray.dim   数组轴的个数

ndarray.shape  数组的维度

ndarray.size   数组元素的个数

ndarray.dtype  数组元素类型

ndarray.itemsize  数组每个元素的字节大小

ndarray.data  指向数据内存,包含实际数组元素

创建数组:

1, 通过list或元组创建ndarray,元素类型可以由给定的数据自动推导出来,也可以由设计者给定。示例:

       Import numpy as np

       a= np.array([1,2,3]),此时a.dtype值为 ‘int32’;

       b= np.array([1,2,3], dtype = float64),此时b.dtype值就为float64

       c= np.array([[1,2,3], [4,6,5], [7,8,9]]),生成二维数组,可生成多维数组

      

2,调用zeros/ ones/ empty/ zeros_like/ones_like/ eye等函数生成

3,调用arange/ linspace也可生成

 

打印数组

       使用print即可,如 a = np.arange(9).reshape(3,3),再调用print(a)即可将数组a显示出来,

array([[0, 1, 2],

                [3, 4, 5],

            [6, 7, 8]])

 

基本运算

1, 数组的算术运算是按元素进行的。

设a = np.array([2,3])    ,b=np.array(7,8)

加法:c = a+b, 则c为 array([9,11])

加法:c = b-a, 则c为 array([5,5])

乘法:c = a*b, 则c为 array([14,24])

二次方:c = a**2,则c为array([4, 9])

    当两个数组元素的类型不同时,其会进行类型转换,往更精确的方向转换,比如int和float相加,得到的结果为float

2, 矩阵乘法  dot函数









索引

可通过arr[a, b], arr[:,b],arr[a, :],arr[m:n, b],arr[a, m:n],arr[m:n, p:q]等多种形式进行访问某个位置的元素、行或列。

       arr[-1]表示访问最后一行

       for row in arr:  //表示按行访问arr

              print row

       若想访问每个数组中元素,可以使用flat属性,如

       for element in b.flat:

              print element

       关于索引这一块,推荐博客:http://blog.csdn.net/chen_shiqiang/article/details/51868115

 

组合不同的数组

       可以沿不同轴将数组堆叠在一起:

       Column_stack: 以列将一维数组组合成二维数组

       Row_stack:以行将一维数组组合成二维数组

       Hstack:水平方向堆叠

       Vstack:垂直方向堆叠

       Concatenate:允许可选参数给出组合时沿着的轴

 

将数组分割

       Hsplit:水平分割

       Vsplit:垂直分割

       Array_split:指定沿哪个轴分割

 

深拷贝与浅拷贝

       a= np.array([1,2,3]);

       b= a;  #浅拷贝,即b与a指向同一个空间,  b is a = true

       c= a.copy()  #深拷贝,把a的内容复制给了c,不指向同一空间, c isa = false

       d = a.view() #浅复制,d与a指向同一数据空间,但是此时创建了新的对象,d is a=false

 

mat函数

       mat函数将目标数据类型转换为矩阵(matrix)

       matrix对象是继承ndarray而来,因此其和ndarray有相同的属性和方法,但它们之间有六个重要的区别:

(1)      矩阵对象可以使用字符串符号创建,以允许matlab风格语法

(2)      矩阵对象总是二维的

(3)      矩阵对象乘法就是矩阵乘法

(4)      Matrix objects over-ridepower to be matrix raised to a power. The same warning about using power insidea function that uses asanyarray(...) to get an array              object holds for this fact.(这个没太懂)

(5)      矩阵对象的默认优先级__array_priority__是10.0,因此与ndarrays的混合操作总是产生矩阵

(6)      矩阵有其特殊属性,使计算更容易. arr.T矩阵转置,arr.I矩阵求逆,arr.H矩阵共轭, arr.A将矩阵作为一个ndarray对象返回

 

关于numpy的官方文档:
https://docs.scipy.org/doc/numpy-dev/user/quickstart.html http://www.scipy-lectures.org/intro/numpy/index.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: