NumPy库的简单使用

创建数组对象

NumPython提供了两种基本的对象:

  • ndarray(下文统一称为数组):存储单一数据类型的多维数组。
  • ufunc(后面再介绍):能够对数组进行处理的函数

1、数组属性

数组的属性及其说明
属性说明
ndim返回int。表示数组的维数
shape返回tuple。表示数组的尺寸,对于n行m列的矩阵,形状为(n,m)
size返回int。表示数组的元素总数,等于数组形状的乘积
dtype返回data-type。描述数组中元素的类型
itemsize返回int。表示数组的每个元素的大小(以字节为单位)。例如,一个元素类型为float64的数组的itemsize属性为8(float64占用64个bits,每个字节长度为8,所以64/8,占用8个字节)。又如,一个元素类型为complex32的数组的itemsize属性值为4,即32/8

2、数组创建

NumPy提供的array函数可以创建一维或多维数组,基本使用语法如下。

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

array函数的主要参数及其说明
参数名称说明
object接受array。表示想要创建的数组。无默认
dtype接收data-type.表示数组所需的数据类型。表示未给定,则选择保存对象所需的最小类型。默认为None
ndmin接收int。制定生成数组应该具有的最小维数。默认为None

以下是一些创建一维数组与多维数组并查看数组属性的例子:

import numpy as np #导入NumPy库
arr1 = np.array([1,2,3,4])   #创建一维数组
print('创建的数组为:',arr1)

运行结果:

创建的数组为: [1 2 3 4]
<class ‘numpy.ndarray’>

# 创建二位数组
arr2 = np.array([[1,2,3,4],[4,5,6,7],[7,8,9,10]])
print('创建的数组为:\n',arr2,'\n')
print('数组维度为:',arr2.shape) #查看数组结构
print('数组类型为:',arr2.dtype)  #查看数组类型
print('数组元素个数为:',arr2.size)  #查看数组元素个数
print('数组每个元素大小为:',arr2.itemsize)   #查看数组每个元素大小

运行结果:

创建的数组为:
[[ 1 2 3 4]
[ 4 5 6 7]
[ 7 8 9 10]]
 
数组维度为: (3, 4)
数组类型为: int32
数组元素个数为: 12
数组每个元素大小为: 4

重新设置数组的shape属性
arr2.shape=4,3   #重新设置shape
print('重新设置shape后的arr2为:\n',arr2)

运行结果:

重新设置shape后的arr2为:
[[ 1 2 3]
[ 4 4 5]
[ 6 7 7]
[ 8 9 10]]

使用 arange 函数创建数组

(初值,终值,间隔) 不包括终值

//0~1,间隔0.1
print('使用arange函数创建的数组为:\n',np.arange(0,1,0.1))

运行结果:

使用arange函数创建的数组为:
[0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]

使用 linspace 函数创建数组

linspace 函数通过制定开始值、终值和元素个数来创建一维数组,默认设置包括终值,这一点需要和arange函数区分,代码如下:

#0~1,12个数
print('使用linspace函数创建的数组为:\n',np.linspace(0,1,0.10))

使用linspace函数创建的数组为:
[0. 0.11111111 0.22222222 0.33333333 0.44444444 0.55555556
0.66666667 0.77777778 0.88888889 1. ]

使用 logspace 函数创建等比数列

logspace 函数和 linspace 函数类似,它创建的是等比数列。生成 1 (100) ~ 100 (102)的20个元素的等比数列,代码如下:

#1~10020个数
print('使用logspace函数创建的数组为:\n',np.logspace(0,2,20))

运行结果:

使用logspace函数创建的数组为:
[ 1. 1.27427499 1.62377674 2.06913808 2.6366509
3.35981829 4.2813324 5.45559478 6.95192796 8.8586679
11.28837892 14.38449888 18.32980711 23.35721469 29.76351442
37.92690191 48.32930239 61.58482111 78.47599704 100. ]

使用 zeros 函数创建数组

zeros 函数用来创建值全部为0的数组,即创建的数组值全部填充为0,代码如下:

print('使用zeros函数创建的数组为:\n',np.zeros((2,3)))

运行结果:

使用zeros函数创建的数组为:
[[0. 0. 0.]
[0. 0. 0.]]

使用 eye 函数创建数组

eye 函数用来生成主对角线上的元素为1,其他的元素为0的数组,类似单位矩阵,代码如下:

print('使用eye函数创建的数组为:\n',np.eye(3))

运行结果:

使用eye函数创建的数组为:
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]

使用 diag 函数创建数组

diag 函数创建类似对角的数组,即除对角线以外的其他元素都为0,对角线上的元素可以是0或其他值,代码如下:

print('使用diag函数创建的数组为:\n',np.diag([1,2,3,4]))

运行结果:

使用diag函数创建的数组为:
[[1 0 0 0]
[0 2 0 0]
[0 0 3 0]
[0 0 0 4]]

使用 ones 函数创建数组

ones 函数用来创建元素全部为1的数组,即创建的数组元素全部填充为1,代码如下:

print('使用ones函数创建的数组为:\n',np.ones((5,3)))

运行结果:

使用ones函数创建的数组为:
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]


关于NumPy库的介绍,就先到这里啦,以后有空的话,我会补充更新的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值