Python基础 NumPy数组相关概念及操作

NumPy入门指南

NumPy是Python的一种开源的数值计算扩展库,提供 数组支持以及相应的高效处理函数,它包含很多功能,如创建n维数组()矩阵,对数组进行函数运算,数值积分,线性代数计算,傅里叶变换和随机数产生等。
Why NumPy?
标准的Python用List(列表)保存值,可以当作数组使用,但因为列表中的元素可以是任何对象,所以浪费了CPU的运算时间和内存。NumPy的诞生弥补了这些缺陷,它提供了两种基本的对象:

  • ndarry(n-dimensional array object):是存储单一数据类型的多维数组。
  • ufunc(universal function object):是一种能够对数组进行处理的函数。
    NumPy常用导入格式:
    import numpy as np

一、数组对象的创建

1、使用 array 函数来创建数组对象:

  • array 函数的格式:
    np.array(object,dtype,ndmin)
    array 函数的主要参数及其使用说明如下表所示:
参数名称 说明
object 接收array,表示想要创建的数组
dtype 接收data-type,表示数组所需数据类型,未给定则选择保存数据对象所需的最小类型,默认为None。
ndmin 接收int,指定生成数组应该具有的最小维数,默认为None。
#创建ndarray数组:
import numpy as np
data1 = [1,3,5,7] #列表
w1 = np.array(data1)
print('w1:',w1)
data2 = (1,2,3,4) #元组
w2 = np.array(data2)
print('w2:',w2)
data3 = [[1,2,3,6],[5,6,7,8]] #多维数组
w3 = np.array(data3)
print('w3:',w3)
#Output
#w1: [1 3 5 7]
#w2: [1 2 3 4]
#w3: [[1 2 3 6]
#    [5 6 7 8]]

在创建数组时,NumPy会为新建的数组推断出一个合适的数据类型,并保存在dtype中,当序列中有整数和浮点数时,dtype会被定义为浮点数类型。

import numpy as np
data1 = [1,3,5,7.3] #列表
w1 = np.array(data1)
print(w1.dtype)
print('w1:',w1)
#Output
#float64
#w1: [1.  3.  5.  7.3]

2、专门创建数组的函数

1)arrange函数

  • arange函数:创建等差一维数组,arrange函数类似于Python的内置函数range,但是arrange主要用来创建数组。
    格式:np.arange([start, ]stop, [step, ]dtype)
#使用arrange创建数组
kk = np.arange(10)
print(kk)
#Output
#[0 1 2 3 4 5 6 7 8 9]

arrange函数可以通过指定初始值、终值和步长创建一维数组,创建的数组不包含终值。

kk = np.arange(0,15,1.5)
print(kk)
#Output
#[ 0.   1.5  3.   4.5  6.   7.5  9.  10.5 12.  13.5]

2)linspace 函数

当arrange函数的参数是浮点型的时候,由于浮点的精度有限,通常不太可能预测或者数组元素的数量,由于这个原因,通常选用更好的函数linspace,它接收元素数量作为参数,通过指定初始值,终值和元素格式创建一维数组,默认包括终值。

  • linspace 函数:创建等差一维数组,接收元素数量作为参数。
    格式:np.linspace(start, stop, num, endpoint, retstep=False, dtype=None)

    参数说明:
    start: scalar(标量), 序列的起始点
    stop: scalar, 依据endpoint会有变化, endpoint为True, 则包含显示, 当为False, 不包含(生成序列相当于原始num上加1按endpoint = True生成, 结果只显示第一个到倒数第二个)
    num: int, optional(可选), 生成样本数量, 必须是非负数
    endpoint: bool, optional, 如果是真,则包括stop,如果为False,则没有stop
    retstep: bool, optional
    dtype: dtype, optional
#使用linspace函数创建数组
kk = np.linspace(1,10,4)
print(kk)
#Output
#[ 1.  4.  7. 10.]

3)logspace 函数

  • logspace 函数和linspace 函数类似,不同的是它所创建的是等比数列数组。
    格式:np.logspace(start, stop, num, endpoint=True,
    base=10.0, dtype=None))
    logspace的参数中,**start, stop代表的是10的幂,**默认基数base为10,第三个参数元素个数。
#生成1~10的具有5个元素的等比数列数组
kk = np.logspace(0,1,5)
print(kk)
#Output
#[ 1.          1.77827941  3.16227766  5.62341325 10.        ]

4)zeros 函数

  • zeros函数:创建指定长度或形状的全0数组
    格式:np.zeros(shape, dtype=float, order=‘C’)
#使用zeros函数创建全零矩阵。
ll = np.zeros(4)
print(ll)
print("-----------------------")
kk = np.zeros(4,float)
print(kk)
print("-----------------------")
cc = np.zeros([3,3],int)
print(cc)
#Output
#[0. 0. 0. 0.]
#-----------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值