python---numpy库知识点

本文详细介绍了Python科学计算库numpy的核心功能,包括创建和操作多维数组,如ndarray的初始化、属性、数据类型转换、算术运算及矩阵操作。此外,还探讨了数组切片、排序和随机数生成等实用功能,对于进行数值计算和数据分析的开发者极具参考价值。
摘要由CSDN通过智能技术生成

numpy 是 python 中科学计算的核心库,numpy 这个词来源于 numerical 和 python 两个单词。它提供了一个高性能的多维数组对象,以及大量的库函数和操作,可以帮助程序员轻松地进行数值计算,广泛应用于机器学习模型、图像处理和计算机图形学、数学任务等领域。

1.array

numpy 中定义的最重要的对象是称为 ndarray 的 n 维数组类型,它是描述相同类型的元素集合。ndarray 中的每个元素都是数据类型对象(dtype)的对象。ndarray 中的每个元素在内存中使用相同大小的块。
方法原型:

numpy.array(object,dtype=None,copy=True,order='K',subok=False,ndmin=0)

object–>一般为列表list 元组tuple或其他序列类型
dtype–>数据类型
copy–>如果为True,则object对象被复制,否则只有当__array__返回副本,object是嵌套序列,或者需要副本来满足任何其他要求时,才会生成副本
order–>指定阵列的内存布局。如果object不是数组,则新创建的数组将按行排列(C)按列排列(F),如果object是一个数组 按行(C)按列(F)按原顺序(A)按元素在内存中出现顺序(K)
subok–>默认情况下,返回的数组被强制为基类数组。如果为True,则返回子类。
ndmin–>数组的最小维数
一些参数用法示例
dtype参数用法

import numpy as np
a=[1,2,3]
b=np.array(a,dtype=float)
print(b)
print(b.dtype)
#输出
[1. 2. 3.]
float64

copy参数用法

import numpy as np
a=np.array([1,2,3])
b=np.array(a,copy=True)
a[0]=0
print(a)
print(b)
#输出
[0 2 3]
[1 2 3]

可以看到a和b的值不同,说明b是a的副本,二个是不同的对象

import numpy as np
a=np.array([1,2,3])
b=np.array(a,copy=False)
a[0]=0
print(a)
print(b)
#输出
[0 2 3]
[0 2 3]

a改变同时引起b的改变,说明a和b指向是同一个对象
subok参数用法


import numpy as np

a=np.matrix("1 4 7;2 5 8;3 6 9")
print(type(a))
print(a)
num1=np.array(a,subok=True)
num2=np.array(a,subok=False)
print(type(num1))
print(type(num2))
#输出
<class 'numpy.matrix'>
[[1 4 7]
 [2 5 8]
 [3 6 9]]
<class 'numpy.matrix'>
<class 'numpy.ndarray'>

2.属性
shape:返回一个包含数组维度的元组,也可以用于调整数组维度

#例一
import numpy as np
a=np.array([[1,2,3],[4,5,6]])
print(a.shape)
#输出(2,3)
#例二
import numpy as np
a=np.array([[1,2,3],[4,5,6]])
a.shape=(3,2)
print(a)
#输出
[[1 2]
 [3 4]
 [5 6]]

dtype:显式object对象数据类型

astype:类型转换

import numpy as np
a=np.array([[1,2,3],[4,5,6]])
a=a.astype(float)
print(a)
#输出
[[1. 2. 3.]
 [4. 5. 6.]]

sum:求和
多维数组 axis=0为列 axis=1为行

import numpy as np
a=np.array([[1,2,3],[4,5,6]])
print(a.sum(axis=0))
print(a.sum(axis=1))
#输出
[5 7 9]
[ 6 15]

arange:创建一个数组
原型

numpy.arange([start,] stop[,step,],dtype=None)

[]表示可选参数
start:起始值,默认为0
stop:终止值(不包含)
step:步长,默认为1
dtype:创建数据类型,如果没有提供,则会使用输入的类型

reshape:将数组设置为几行几列。也能对原始多维数组进行修改

import numpy as np
a=np.arange(15)
print(a.reshape(3,5))
#输出
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]]

ndim:显式数组维度

size:显式数组中元素的个数

zeros:初始化数组中的内容均为0
原型

numpy.zeros(shape,dtype=float,order='C')

注意:默认为float类型

ones:用来构造全为1的数组
原型

numpy.noes(shape,dtype=float,order='C')

eye:用来构造单位矩阵

random:随机数
random.rand()
random.random(size)
random.randint(low,high=None,size=None,dtype=‘l’)
size–>整数或者元组

linspace:创建一个一维等差数列的数组,固定元素数量
原型

numpy.linspace(start,stop,num=50,endpoint=True,restep=Flase,dtype=None)

start–>序列起始值
stop–>序列终止值,如果endpoint为True,则该值包含于数列
num–>样本数量,默认为50
endpoint–>为True,数列中包含stop值,反之不包含,默认为True
restep–>为True,生成数组显式间距
dtype–>数据类型

logspace:创建一个等比数列的数组
原型

numpy.logspace(start,stop,num=50,endpoint=True,base=10.0,dtype=None)

start–>序列起始值:base**start(幂运算)
stop–>序列终止值: base**stop
base–>对数log的底数 默认为10.0

geomspace:创建一个一维的等比数列数组
原型

numpy.geomspace(start,stop,num=50,endpoint=True,dtype=None,axis=0)

axis–>值为0和-1时结果相同,其他时候报错(有点不懂)

在numpy中二个类型格式相同的数组可以进行运算符操作
dot:相当于二个矩阵的乘法 ,但*为二个矩阵对应数组的乘法

import numpy as np
a=np.array([[1,1],[0,1]])
b=np.array([[2,0],[3,4]])

print(a*b)
print(a.dot(b))
print(np.dot(a,b))
#输出
[[2 0]
 [0 4]]
[[5 4]
 [3 4]]
[[5 4]
 [3 4]]

exp:计算e的几次方

import numpy as np
a=np.arange(3)
print(a)
print(np.exp(a))
#输出
[0 1 2]
[1.         2.71828183 7.3890561 ]

sqrt:计算数据的平方根

import numpy as np
a=np.arange(3)
print(a)
print(np.sqrt(a))
#输出
[0 1 2]
[0.         1.         1.41421356]

resize:重新设置矩阵的维度。无返回值
hstack:实现矩阵的横向合并 numpy.hstack((a,b))
vstack:实现矩阵的纵向合并
hsplit:实现矩阵的横向切割
vsplit:实现矩阵的纵向切割
注意切割方式若分成二分,则需要将矩阵等分,否则报错

tile(A,rep)rep:A沿着各个维度重复的次数,对数组维度进行扩展

sort:排序 可以将矩阵中的数据按照指定的维度大小进行排序
numpy.sort(a,axis)函数返回一个新数组

argsort:会计算矩阵指定维度的数据从小到大的索引

import numpy as np
a=np.array([[1,3,2,6],[8,2,4,9]])
b=np.argsort(a,axis=1)
c=np.argsort(a,axis=0)
print(b)
print(c)
#输出
[[0 2 1 3]
 [1 2 0 3]]
[[0 1 0 0]
 [1 0 1 1]]

3.数组切片

import numpy as np

a=np.array([[1,2],[3,4],[5,6],[7,8],[9,10]])
#输出所有行的第0个元素
print(a[:,0])
#输出所有行的第1个元素
print(a[:,1])
#输出第一维所有元素
print(a[1,:])

a=np.array([[0,1,2],[3,4,5],[6,7,8],[9,10,11],[12,13,14],[15,16,17],[18,19,20]])
#输出所有行第m到n-1列元素 含左不含右[:,m:n]
print(a[:,1:3])
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值