python——numpy

本文详细介绍了Python中的Numpy库,包括如何导入、创建多维数组,如zeros、ones、eye和full等,以及数组的属性如T、dtype、size等。还讲解了数组的索引、切片、拼接、转换形状和数据类型,以及一元和二元函数,如sqrt、add、multiply等。此外,还涵盖了统计方法、随机数生成和矩阵操作。Numpy是进行高效数组计算的关键工具。
摘要由CSDN通过智能技术生成

numpy是Python中的一个运算速度非常快的一个数学库,主要用于对多维数组执行计算。
导入方式

import numpy as np

一、创建N维数组ndarray
可用“dtype = float”等指定数据类型
可选参数order='C’行优先/'F’列优先
1.array() 将列表转换为数组

a = [[1,2,3],[4,5,6]]
b = np.array(a)  #将列表转换为数组
print("a =",a)
print("b =",b)

2.zeros() 全0数组
数组的数据类型dtype默认为float

a = np.zeros((4,5))  #生成4行5列全0数组
print("a =",a)

3.ones() 全1数组
数组的数据类型dtype默认为float

a = np.ones((4,5))  #生成4行5列全1数组
print("a =",a)

4.eye() 单位矩阵
数组的数据类型dtype默认为float

a = np.eye(4)  #生成4行4列的单位矩阵
print("a =",a)

5.empty() 生成接近于0的数组
数组的数据类型dtype默认为float

a = np.empty((4,5))  #生成4行5列的接近于0的数组
print("a =",a)

6.full() 生成指定形状指定值的完整数组

a = np.full((5, 10), 1)  #生成5行10列的值为1的完整数组
print("a =",a)

7.arange() 生成有序的数列或数组,range的numpy版
省略开始则默认从0开始,省略步长则默认步长为1

a = np.arange(1,10,2)  #生成一个从1开始到10结束(不包括结束值),步长为2的数列
b = np.arange(10)  #生成一个从0开始到10结束(不包括结束值),步长为1的数列
print("a =",a)
print("b =",b)

8.linspace() 生成有序的数列或数组,类似arange(),第三个参数为数组长度

a = np.linspace(1,10,20)  #生成一个从1开始到10结束(包括结束值),总共有20个数的等距的数列
print("a =",a)

9.修改数组的数据类型

a = np.ones(6)
print("a =",a)
a = np.int8(a)
print("a =",a)
b = np.array([1, -2, 3, -4], dtype='int8')
print("b =",b)
b = np.float32(b)
print("b =",b)

二、常用属性
1.T 数组的转置

a = [[1,2,3],[4,5,6]]
b = np.array(a)  #将列表转换为数组
c = b.T  #将数组b转置,即行列互换
print("a =",a)
print("b =",b)
print("c =",c)

2.dtype 数组元素的数据类型

a = np.zeros(10)  #生成一个1行10列的全0数组
print("a =",a)
print("a的数据类型为",a.dtype)

3.size 数组元素的个数

a = np.eye(4)  #生成4行4列的单位矩阵
print("a =",a)
print("a的元素个数为",a.size)  #输出为16,即a中有16个元素

4.ndim 数组的维数

a = np.eye(4)  #生成4行4列的单位矩阵
print("a =",a)
print("a的维数是",a.ndim)  #输出为2,即a是一个二维数组

5.shape 数组的形状

a = [[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]]
b = np.array(a)  #将列表转换为数组
print("a =",a)
print("b =",b)
print("b的维数是",b.ndim)  #输出为3,即b是一个三维数组
print("b各维度的长度分别为",b.shape)  #输出为(2,2,3),即a是一个形状为2层2行3列的三维数组

6.flatten 返回一个折叠成一维的数组

A = np.array([[1,2],[3,4],[5,6]])
B = A.flatten()  # 行优先
C = A.flatten('A')  # 行优先
D = A.flatten('F')  # 列优先
print("A =",A)
print("B =",B)
print("C =",C)
print("D =",D)

三、索引
1.整数序号索引:数组名[索引序号]
正值索引:从左往右,第一个序号是0,最后一个序号是长度减1
负值索引:从右往左,第一个序号是-1,最后一个序号是长度的负数

a = np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]])
b = a[1]
c = a[1,1]
d = a[1,1,1]
print("a =",a)
print("b =",b)
print("c =",c)
print("d =",d)

2.切片索引
[开始索引:结束索引:步长]
切片包括开始索引位置的元素,但不包括结束索引位置的元素
步长可以为正整数(从左往右切),也可以为负整数(从右往左切,数组逆序排列)
省略开始索引则默认从第一个序号开始(包括),省略结束索引则默认到最后一个序号结束(包括),省略步长则默认步长为1

a = np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]],[[13,14,15],[16,17,18]]])
b = a[:1]
c = a[1,1:]
d = a[1,1,::2]
e = a[1,1,::-1]
f = a[1,1,1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值