Python 科学计算笔记

1.NumPy快速处理数据

1.基本使用

导入numpy函数包常用

import numpy as np

使用该函数包首先要创建一个数组才能进行相应操作,这里我们选择创建一个多维数组

c = np.array([[1, 2, 3, 4],[4, 5, 6, 7], [7, 8, 9, 10]])

 可以得到如下多维数组

array([[ 1,  2,  3,  4],
       [ 4,  5,  6,  7],
       [ 7,  8,  9, 10]])

2.数组的形状(Shape)

>>> c.shape
(3, 4)

数组 c 的 shape 属性有两个元素,因此它是二维数组,其中第0轴的长度为3,第1轴的长度为4。因此我们可以说shape返回得到的(a,b)的意思是该数组为一个a维数组,而每行的元素有b个。

2.1 shape的赋值

shape可以被赋值,例如我们将c数组赋值

c.shape = 4,3

可以得到

>>> c
array([[ 1,  2,  3],
       [ 4,  4,  5],
       [ 6,  7,  7],
       [ 8,  9, 10]])

这样的操作下内存中的每一个元素没有发生改变,只是修改了数组的shape属性。

注意:将(a,b)中的某一值赋值为-1时,将自动计算该轴的长度。

例如

>>> c.shape = 2,-1
>>> c
array([[ 1,  2,  3,  4,  4,  5],
       [ 6,  7,  7,  8,  9, 10]])

我们得到的c.shape实际上是 2,6

2.2 reshape函数

使用数组的 reshape方法,可以创建一个改变了尺寸的新数组,原数组的shape保持不变。

但要注意的是 新建立的数组与原数组共用同样的内存地址,因此任意一个数组内的元素变化都会造成另一数组元素发生同样变化

3.数组的类型 dtype

数组的元素类型可以通过 dtype 属性获得。 上面例子中的参数序列的元素都是整数,因此所创建的数组的元素类型也是整数,并且是32bit的长整型。 可以通过 dtype 参数在创建时指定元素类型

4.创建数组的函数

  • arange() 函数类似于 Python的 range()

  • 函数,通过指定开始值、终值和步长来创建一维数组,注意数组不包括终值:

  • >>> np.arange(0,1,0.1)
    array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])

linspace函数通过指定开始值、终值和元素个数来创建一维数组,可以通过endpoint关键字指定 是否包括终值,缺省设置是包括终值:

>>> np.linspace(0, 1, 12)
array([0.        , 0.09090909, 0.18181818, 0.27272727, 0.36363636,
       0.45454545, 0.54545455, 0.63636364, 0.72727273, 0.81818182,
       0.90909091, 1.        ])

logspace函数和linspace类似,不过它创建等比数列,下面的例子产生1(100)到100(102)、 有20个元素的等比数列:

>>> np.logspace(0, 2, 20)
array([  1.        ,   1.27427499,   1.62377674,   2.06913808,
         2.6366509 ,   3.35981829,   4.2813324 ,   5.45559478,
         6.95192796,   8.8586679 ,  11.28837892,  14.38449888,
        18.32980711,  23.35721469,  29.76351442,  37.92690191,
        48.32930239,  61.58482111,  78.47599704, 100.        ])

此外,使用frombuffer, fromstring, fromfile等函数可以从字节序列创建数组。

2.ufnc运算

3.矩阵运算

numpy库中提供matrix类进行创建矩阵,可以进行矩阵的加减乘除运算

4.文件存取

NumPy提供了多种文件操作函数方便我们存取数组内容。文件存取的格式分为两类:二进制和文本。 而二进制格式的文件又分为NumPy专用的格式化二进制类型和无格式类型。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值