欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python笔记-Numpy库的使用介绍(未完结)

程序员文章站 2022-10-07 20:43:36
Python第三方库Numpy的使用...

前言

Numpy是一个扩展的程序库,支持维度数组和矩阵运算,还针对数组运算提供大量的数学函数库。通常来说比较经常见到的是一维和二维数组,多维数组比较少见。

菜鸟教程的Numpy教程

一、数组

[1]. 创建

(1) N维数组

创建一维数组的方法:数组 = numpy.array(列表1,列表2,....,列表n)
创建二维数组的方法:数组 = numpy.array([列表1,列表2,....,列表n])
注:列表和元组都能被转换为数组(numpy.ndarray类型),在创建n维数组时,需要添加n个中括号[ ]
Python笔记-Numpy库的使用介绍(未完结)

import numpy
lst1 = [1,2,3]
lst2 = [4,5,6]
lst3 = [7,8,9]
array = numpy.array([lst1,lst2,lst3])
print(array)

(2) 指定数组类型

数组 = numpy.array(列表,dtype = 类型)
Python笔记-Numpy库的使用介绍(未完结)

import numpy
lst = [1,2,3]
array = numpy.array(lst,dtype = str) #设置该数组元素为字符串类型
print(array)

(3) 指定数组大小、数值类型,并以0填充

数组 = numpy.zeros(shape,dtype= 类型)

注:用这种方法创建的数组元素默认为0

参数 介绍
shape 数组的形状,如果填y时,表示一维数组中含有y个元素。如果填(x,y,z)表示有x个一维数组,每个数组中有y个元素。如果填(x,y,z)时,表示有x个二维数组,每个二维数组中有y个一维数组,每个一维数组中有z个元素。以此类推。
dtype 若不填类型时,默认为float类型

Python笔记-Numpy库的使用介绍(未完结)

import numpy
array = numpy.zeros((2,3,4),dtype = int)
print(array)

(4) 指定数组大小、数值类型,并以1填充

数组 = numpy.ones(shape,dtype= 类型)

注:用这种方法创建的数组元素默认为1

参数 介绍
shape 数组的形状,如果填y时,表示一维数组中含有y个元素。如果填(x,y,z)表示有x个一维数组,每个数组中有y个元素。如果填(x,y,z)时,表示有x个二维数组,每个二维数组中有y个一维数组,每个一维数组中有z个元素。以此类推。
dtype 若不填类型时,默认为float类型

Python笔记-Numpy库的使用介绍(未完结)

import numpy
array = numpy.ones((2,3,4),dtype = int)
print(array)

(5)指定数值范围、数值类型

数组 = numpy.arange(start,stop,step,dtype = 类型)

参数 介绍
start 起始值,默认为0
stop 终止值(不包含)
step 步长,默认为1
dtype 若不填类型时,默认为int类型

Python笔记-Numpy库的使用介绍(未完结)

import numpy
array = numpy.arange(1,10,1,dtype = int)
print(array)

(6)等差数列

数组 = numpy.linspace(start,stop,num,endpoint,retstep,dtype)

注:等差数列的公差将会根据元素个数和数值范围进行变更。

参数 介绍
start 起始值
stop 终止值
num 元素个数,默认为50
endpoint 是否数值范围中,包含stop,默认为True
retstep 是否在数组中显示间距
dtype 数值类型

Python笔记-Numpy库的使用介绍(未完结)

import numpy
array = numpy.linspace(1,10,10,endpoint = True,dtype = int)
print(array)

(7)等比数列

数组 = numpy.logspace(start,stop,num,endpoint,base,dtype)

注:等比数列的公比将会根据元素个数和数值范围进行变更。

参数 介绍
start 起始值为base的start次方
stop 终止值为base的stop次方
num 元素个数,默认为50
endpoint 是否数值范围中,包含stop,默认为True
base 对数中的底数,默认为10
dtype 数值类型

Python笔记-Numpy库的使用介绍(未完结)

import numpy
array = numpy.logspace(1,2,20,endpoint = True,base=10,dtype= int)
print(array)

[2]. 查看数值特性

(1) 查看数组的维度

数组.ndim
注:用这个方法可以查看数组是几维的
Python笔记-Numpy库的使用介绍(未完结)

import numpy
array = numpy.zeros((2,3),dtype= int) #创建一个2行3列的二维数组
print('维度:',array.ndim)
print(array)

(2)查看数组中每个维度的大小

数组.shape
Python笔记-Numpy库的使用介绍(未完结)

import numpy
array = numpy.zeros((2,3),dtype= int)
print('大小:',array.shape)
print(array)

(3)查看数组中元素的个数

数组.size
Python笔记-Numpy库的使用介绍(未完结)

import numpy
array = numpy.zeros((2,3),dtype= int)
print('个数:',array.size)
print(array)

(4)查看数组中元素的类型

数组.dtype
Python笔记-Numpy库的使用介绍(未完结)

import numpy
array = numpy.zeros((2,3),dtype= int)
print('类型:',array.dtype)
print(array)

(5)查看数组中元素的字节大小

数组.itemsize
Python笔记-Numpy库的使用介绍(未完结)

import numpy
array = numpy.zeros((2,3),dtype= int)
print('字节大小:',array.itemsize)
print(array)

[3]. 索引和切片

数组的索引是从0开始的,如果一个数组有5个元素,则相应元素的索引为:0 1 2 3 4
数组是由列表、元组转化过来的,所以数组同样有切片的作用。
数组也可以使用负数索引来查询数值,此处就不多介绍切片和负数索引了。

Python笔记-Numpy库的使用介绍(未完结)

import numpy
array = numpy.array([1,2,3,4,5],dtype = int)
print(array[0]) #获取数组中的第一个元素值

lst1 = [1,2,3]
lst2 = [4,5,6]
array = numpy.array([lst1,lst2],dtype = int)
print(array[0][2]) #获取lst1中的第3个元素(索引需要减1)

[4]. 数组变形

此处的数组变形不是数组的类型转换,而是数组的形状发生变化,如4行3列变成3行4列。
数组当中的元素值不会发生变化,而且要求变化后的元素总个数不能改变,若4行3列(12个)要转换成2行2列(4个)时将会报错。

Python笔记-Numpy库的使用介绍(未完结)

import numpy
lst1 = [1,2,3,4]
lst2 = [5,6,7,8]
array = numpy.array([lst1,lst2],dtype = int) #创建一个2行4列的数组
print(array)
print()
array = array.reshape(4,2) #转换为4行2列的数组
print(array)

[5]. 数组的组合

数组的组合是针对多个数组的,可以是多个同样的数组进行组合。
数组直接组合:新数组 = nump.concatenate([数组1,数组2,.....,数组N])
垂直方向组合(行):新数组 = nump.vstack([数组1,数组2,......,数组N])
水平方向组合(列):新数组 = nump.vstack([数组1,数组2,......,数组N])

Python笔记-Numpy库的使用介绍(未完结)
Python笔记-Numpy库的使用介绍(未完结)
Python笔记-Numpy库的使用介绍(未完结)

import numpy
array = numpy.array([1,2,3])
print(numpy.concatenate([array,array])) #直接将后面的数组连接到前面数组的末尾
import numpy
array = numpy.array([1,2,3])
print(numpy.vstack([array,array]))
import numpy
array = numpy.array([1,2,3])
print(numpy.hstack([array,array]))

[6]. 数组的拆分

数组的拆分主要是针对单个数组的,将单个数组拆分成多个数组
数组直接拆分:numpy.split(数组,个数)
垂直方向拆分(行):numpy.vsplit(数组,个数)
水平方向拆分(列):numpy.hsplit(数组,个数)
Python笔记-Numpy库的使用介绍(未完结)
Python笔记-Numpy库的使用介绍(未完结)
Python笔记-Numpy库的使用介绍(未完结)

import numpy
lst1 = [1,2,3]
lst2 = [4,5,6]
array = numpy.array([lst1,lst2]) #创建一个2行3列数组
x,y = numpy.split(array,2) #拆分回两个一维数组
print(x)
print(y)
import numpy
lst1 = [1,2,3]
lst2 = [4,5,6]
array = numpy.array([lst1,lst2]) #创建一个2行3列数组
x,y = numpy.vsplit(array,2) #按行拆分,可分为两个1行3列数组
print(x)
print(y)

import numpy
lst1 = [1,2,3]
lst2 = [4,5,6]
array = numpy.array([lst1,lst2]) #创建一个2行3列数组
x,y,z = numpy.hsplit(array,3) #按列拆分,可分为三个含有2行1列数组
print(array)
print()

print(x)
print(y)
print(z)

本文地址:https://blog.csdn.net/smallfox233/article/details/107300099