IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Numpy简易教程1——创建数组对象 -> 正文阅读

[Python知识库]Numpy简易教程1——创建数组对象

创建数组对象

NumPy提供了两种基本的对象:ndarray(N-dimensional Array Object)和ufunc(Universal Function Object)。
ndarray(下文统一称为数组)是存储单一数据类型的多维数组,而ufunc则是能够对数组进行处理的函数。

1. 数组属性

为了更好地理解和使用数组,了解数组的基本属性是十分有必要的。

属性说明
ndim返回 int。表示数组的维数
shape返回 tuple。表示数组的尺寸,对于 n 行 m 列的矩阵,形状为(n,m)
size返回 int。表示数组的元素总数,等于数组形状的乘积
dtype返回 data-type。描述数组中元素的类型
itemsize返回 int。表示数组的每个元素的大小(以字节为单位)。

2.数组创建

array函数

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。

案例:展示创建一维数组与多维数组并查看数组属性

# 导入 NumPy 库 
import numpy as np
# 创建一维数组 
arr1 = np.array([1, 2, 3, 4]) 
print(' 创建的数组为: ',arr1)
创建的数组为:  [1 2 3 4]
# 创建二维数组
arr2 = np.array([[1, 2, 3, 4],[4, 5, 6, 7], [7, 8, 9, 10]])
print('创建的数组为:\n',arr2)
创建的数组为:
 [[ 1  2  3  4]
 [ 4  5  6  7]
 [ 7  8  9 10]]
# 查看数组属性
print('数组类型为:',arr2.dtype)  #查看数组类型
print('数组元素个数为:',arr2.size)  #查看数组元素个数
print('数组每个元素大小为:',arr2.itemsize)  #查看数组每个元素大小
数组类型为: int32
数组元素个数为: 12
数组每个元素大小为: 4

数组arr1只有一行元素,因此它是一维数组。而数组arr2有3行4列元素,因此它是二维数组,其中第0轴的长度为3(即行数),第1轴的长度为4(即列数)。还可以通过修改数组的shape属性,在保持数组元素个数不变的情况下改变数组每个轴的长度。代码2-2将数组arr2的shape改为(4,3)。注意,从(3,4)改为(4,3)并不是对数组进行转置,而只是改变每个轴的大小,数组元素的顺序并没有改变。

# 重新设置shape
arr2.shape = 4,3 
print('重新设置shape 后的arr2 为:',arr2)
重新设置shape 后的arr2 为: [[ 1  2  3]
 [ 4  4  5]
 [ 6  7  7]
 [ 8  9 10]]

上面的例子都是先创建一个Python序列,然后通过array函数将其转换为数组,这样做显然效率不高。因此NumPy提供了很多专门用来创建数组的函数。

arange 函数

arange函数类似于 Python 自带的函数range,通过指定开始值、终值和步长来创建一维数组,创建的数组不含终值。

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函数区分。

print('使用linspace函数创建的数组为:',np.linspace(0, 1, 12))
使用linspace函数创建的数组为: [0.         0.09090909 0.18181818 0.27272727 0.36363636 0.45454545
 0.54545455 0.63636364 0.72727273 0.81818182 0.90909091 1.        ]

logspace函数

logspace函数和linspace函数类似,它创建的是等比数列。

print('使用logspace函数创建的数组为:',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函数创建的数组为:',np.zeros((2,3)))
使用zeros函数创建的数组为: [[0. 0. 0.]
 [0. 0. 0.]]

eye函数

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

diag函数

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

ones函数

ones函数用来创建元素全部为1的数组,即创建的数组元素全部填充为1。

3.数组数据类型

数据类型

在实际的业务数据处理中,为了更准确地计算结果,需要使用不同精度的数据类型。NumPy 极大程度地扩充了原生 Python 的数据类型,其中大部分的数据类型是以数字结尾的,这个数字表示其在内存中占有的位数。同时需要强调一点,在NumPy中,所有数组的数据类型是同质的,即数组中的所有元素类型必须是一致的。这样做的好处是,更容易确定该数组所需要的存储空间。NumPy的基本数据类型及其取值范围如下表所示。

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

转换函数

对于NumPy数组中的数据类型,每一种数据类型均有其对应的转换函数。

print('转换结果为:',np.float64(42))  #整型转换为浮点型
print('转换结果为:',np.int8(42.0))  #浮点型转换为整型
print('转换结果为:',np.bool(42))  #整型转换为布尔型
print('转换结果为:',np.bool(0))  #整型转换为布尔型
print('转换结果为:',np.float(True))  #布尔型转换为浮点型
print('转换结果为:',np.float(False))  #布尔型转换为浮点型

转换结果为: 42.0
转换结果为: 42
转换结果为: True
转换结果为: False
转换结果为: 1.0
转换结果为: 0.0

案例:存储餐饮企业库存信息

下面将创建一个存储餐饮企业库存信息的数据类型。其中,用一个能存储 40 个字符的字符串来记录商品的名称,用一个 64 位的整数来记录商品的库存数量,最后用一个 64 位的单精度浮点数来记录商品的价格,具体步骤如下。
-(1)创建数据类型。

df = np.dtype([("name", np.str_, 40), ("numitems", np.int64),
    ("price",np.float64)])
print('数据类型为:',df)

-(2)查看数据类型,可以直接查看或者使用numpy.dtype函数查看,在使用array函数创建数组时,数组的数据类型默认是浮点型。

print('数据类型为:',df["name"])
print('数据类型为:',np.dtype(df["name"]))

自定义数组数据,则可以预先指定数据类型。

itemz = np.array([("tomatoes", 42, 4.14),("cabbages", 13, 1.72)],dtype=df)
print('自定义数据为:',itemz)
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-09 10:12:00  更:2021-08-09 10:12:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/26 2:16:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计