0基础学深度学习——numpy

部署运行你感兴趣的模型镜像

NumPy(Numerical Python)是 Python 语言的一个重要的扩展程序库,主要用于对多维数组执行计算。numpy库广泛应用于科学技术、数据分析、机器学习、数据可视化等领域,今天就让我们来学习一下关于numpy库的相关内容

numpy帮助文档
numpy帮助文档(中文)

一、函数简介

numpy库中有许多函数值得我们学习,今天我们就先学习一些基础的函数,如数组的创建。以下是这些函数的使用方法,建议结合后面例题学习。

函数用法
array(object, dtype=None, copy=True, order=‘K’, subok=False, ndmin=0)
arange([start, ]stop, [step, ]dtype=None)
dtype(dtype, align=False, copy=False[, metadata])
zeros(shape, dtype=float, order=‘C’, *, like=None)
zeros_like(a, dtype=None, order=‘K’, subok=True, shape=None, *, device=None)
ones(shape, dtype=None, order=‘C’, *, device=None, like=None)
ones_like(a, dtype=None, order=‘K’, subok=True, shape=None, *, device=None)[source]

二、函数的使用

1. 使用array创建数组

array(object, dtype=None, copy=True, order=‘K’, subok=False, ndmin=0)
object:可以是一个序列(如列表、元组)、嵌套序列(如二维列表)或其他可迭代对象。这是用于创建数组的数据来源。
dtype:指定数组中元素的数据类型。如果未指定,则根据输入数据自动推断。
copy:如果为 True,则复制输入对象;如果为 False,则在可能的情况下使用输入对象的引用。默认为 True。
order:指定数组在内存中的存储顺序,可以是 ‘C’(C 风格,行优先)、‘F’(Fortran 风格,列优先)或 ‘K’(尽可能匹配输入的顺序)。默认为 ‘K’。
subok:如果为 True,则返回的数组将是输入对象的子类;如果为 False,则返回的数组将始终是基类数组。默认为 False。
ndmin:指定结果数组的最小维数。如果输入数据的维数小于ndmin,则将其提升为指定的维数。默认为 0

  1. object和dtype的例子
arr = np.array((1,2,3)) #等价于arr=np.array([1,2,3])
arr1 = np.array([1,2,3],dtype = float) #将数据类型定义为浮点型 等价于arr1 = np.array([1.,2.,3.])
print(arr1) #输出[1. 2. 3.]
  1. order的例子
arr = np.array([1,2,3])
arr1 = np.array(arr,copy = False) #当copy的值为False时,arr数组中的值会随arr1数组中的值改变
arr2 = np.array(arr) #copy的值默认为True
arr1[0] = 100
arr2[0] = 50
print(arr) #输出[100   2   3]
print(arr1)#输出[100   2   3]
print(arr2) #输出[50  2  3]
  1. subok的例子
import numpy as np
arr = np.mat([1,2,3])	#创建矩阵
arr1 = np.array(arr,subok = True) 
arr2 = np.array(arr)  #subok默认为False
print(type(arr))		#输出<class 'numpy.matrix'>
print(type(arr1))	#输出<class 'numpy.matrix'>
print(type(arr2))	#输出<class 'numpy.ndarray'>

在这里插入图片描述
4. ndim的例子

import numpy as np #调用numpy库并从重命名为np,方便后面使用
arr_ndim1 = np.array([1,2,3]) #创建一个一维数组
arr_ndim2 = np.array([1,2,3],ndmin=2) #创建一个二维数组
print(arr_ndim1) #输出为 [1,2,3]
print(arr_ndim1.ndim) #求arr_ndim1的维度,返回值为1
print(arr_ndim2) #[[1 2 3]]
print(arr_ndim2.ndim)#求arr_ndim2的维度,返回值为2

在这里插入图片描述

2. 使用arange创建数组

start:起始值,可选参数,默认为 0。它确定了生成数组的起始点。
例如,np.arange(3),由于没有指定起始值,默认从 0 开始,生成包含 0、1、2 的数组。而 np.arange(2,5)指定起始值为 2,生成 2、3、4。
stop:终止值,必选参数。这个值本身不在生成的数组中。
比如,np.arange(0,5)生成的数组不包含数字 5。
step:步长,可选参数,默认为 1。它决定了数组元素之间的间隔。
例如,np.arange(0,10,2)以步长为 2 生成数组 0、2、4、6、8。
dtype:数据类型,可选参数。如果不指定,NumPy 会根据参数自动推断合适的数据类型。
例如,np.arange(0,5,dtype=np.float32)生成的数据类型为单精度浮点数的数组。

import numpy as np #调用numpy库并从重命名为np,方便后面使用
arr = np.arange(10) #start默认为0,step默认为1
arr1 = np.arange(1,10)	#将start设置为1
arr2 = np.arange(1,10,2)	#将start设置为1,step设置为2
arr3 = np.arange(0,5,dtype = float) #将数据类型设置为单精度浮点型
print(arr)	#输出[0 1 2 3 4 5 6 7 8 9]
print(arr1)	#输出[1 2 3 4 5 6 7 8 9]
print(arr2)	#输出[1 3 5 7 9]
print(arr3) #输出[0. 1. 2. 3. 4.]

输出结果

3.使用zeros和zeros_like创建数组

shape:指定要创建的数组的形状,可以是一个整数表示一维数组的长度,也可以是一个元组表示多维数组的维度。
dtype:指定数组的数据类型,默认为 float(浮点数)。
order:控制数组在内存中的存储顺序,有 ‘C’(行优先,C 语言风格)和 ‘F’(列优先,Fortran 语言风格)两种选项,默认为 ‘C’。
一般情况下,对于大多数应用场景,这个参数不需要特别指定。
like:可以传入一个已有的数组,使新创建的数组与传入的数组具有相同的形状、数据类型和存储顺序等属性。
示例:如果有一个数组 a,可以使用 np.zeros_like(a)来创建一个与 a 形状相同且元素全为 0 的数组。

import numpy as np #调用numpy库并从重命名为np,方便后面使用
arr = np.zeros(3) #shape为3
arr_int = np.zeros(3,dtype=int) #创建整形数组,dtype默认为float
arr_like = np.zeros_like(arr)	#创建和arr相同维度的数组
arr1 = np.zeros([2,3])	
#自己尝试下创建一个和arr1相同纬度的数组	

print("这是arr",arr)
print("这是arr_int",arr_int)
print("这是arr_like",arr_like)
print("这是arr1",arr1)

在这里插入图片描述

4.使用ones和ones_like创建数组

在用法上与zeros和zeros_like相同
区别:ones创建的数组是用1填充,而zeros创建的数组是用0填充
拓展与思考:np.eye创建的是对角线为1的数组,那用法是否与zeros和ones一样呢

import numpy as np #调用numpy库并从重命名为np,方便后面使用
arr = np.ones(3)	#shape为3
arr_int = np.ones(3,dtype=int)	 #创建整形数组,dtype默认为float
arr_like = np.ones_like(arr)	#创建和arr相同维度的数组
arr1 = np.ones([2,3])
arr1_like = np.ones_like(arr1)	#创建和arr1相同维度的数组,同理可知上面zeros的答案与此相似
print("这是arr",arr)
print("这是arr_int",arr_int)
print("这是arr_like",arr_like)
print("这是arr1",arr1)
print("这是arr1_like",arr1_like)

在这里插入图片描述

以上便是本节内容,新手小白学习记录日常,如果有欠妥部分还望指出并给予些许建议。

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值