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

文章目录

  • 前言
  • 一、数组
    • [1]. 创建
      • (1) N维数组
      • (2) 指定数组类型
      • (3) 指定数组大小、数值类型,并以0填充
      • (4) 指定数组大小、数值类型,并以1填充
      • (5)指定数值范围、数值类型
      • (6)等差数列
      • (7)等比数列
    • [2]. 查看数值特性
      • (1) 查看数组的维度
      • (2)查看数组中每个维度的大小
      • (3)查看数组中元素的个数
      • (4)查看数组中元素的类型
      • (5)查看数组中元素的字节大小
    • [3]. 索引和切片
    • [4]. 数组变形
    • [5]. 数组的组合
    • [6]. 数组的拆分

前言

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

菜鸟教程的Numpy教程

一、数组

[1]. 创建

(1) N维数组

创建一维数组的方法:数组 = numpy.array(列表1,列表2,....,列表n)
创建二维数组的方法:数组 = numpy.array([列表1,列表2,....,列表n])
注:列表和元组都能被转换为数组(numpy.ndarray类型),在创建n维数组时,需要添加n个中括号[ ]
在这里插入图片描述

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 = 类型)
在这里插入图片描述

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库的使用介绍(未完结)_第1张图片

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库的使用介绍(未完结)_第2张图片

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类型

在这里插入图片描述

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 数值类型

在这里插入图片描述

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库的使用介绍(未完结)_第3张图片

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

[2]. 查看数值特性

(1) 查看数组的维度

数组.ndim
注:用这个方法可以查看数组是几维的
在这里插入图片描述

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

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

数组.shape
在这里插入图片描述

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

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

数组.size
在这里插入图片描述

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

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

数组.dtype
在这里插入图片描述

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

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

数组.itemsize
在这里插入图片描述

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

[3]. 索引和切片

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

在这里插入图片描述

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库的使用介绍(未完结)_第4张图片

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])

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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库的使用介绍(未完结)_第5张图片

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)

你可能感兴趣的:(Python)