数据分析(二)NumPy 科学计算库

一、NumPy 简介

NumPy — 科学计算库

结构核心:

  • ndarray 对象
    • 存储单一数据类型的多维数组对象。
    • 内存是连续的。
  • 两种存储风格
    • C风格
      • C 语言风格
      • 按行优先存储
    • F风格
      • fortran 语言风格
      • 按列优先存储
# 导包语句
import numpy as np

二、数组的属性

ndarray(数组)是存储单一数据类型的多维数组。

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

维度的理解

在这里插入图片描述

三、ndarray对象

(一)数组的创建

1、固定值数组

array
numpy.array(object, dtype = None, order = None, ndmin = 0)
名称 描述
object 数组或嵌套的数列
dtype 数组元素的数据类型,可选
order 创建数组的样式,C为行方向,F为列方向,A为任意方向(默认)
ndmin 指定生成数组的最小维度

创建数组并查看数组属性:

import numpy as np

# 将列表转化为 数组
# arr = np.array([1,2,3,4]) # 一维数组
# arr = np.array([[1,2,3,4],[5,6,7,8]]) # 二维数组
arr = np.array([[[1,2,3,4],[5,6,7,8]],[[1,2,3,4],[5,6,7,8]]]) # 三维数组
print("arr:\n",arr)
print("arr 的类型:\n",type(arr))

# ndarray对象属性
# ndim shape  size  dtype  itemsize
print("arr 的维度:\n",arr.ndim)
print("arr 的形状:\n",arr.shape)
print("arr 的大小:\n",arr.size)
print("arr 的元素的类型:\n",arr.dtype)
print("arr 的每一个元素的大小:\n",arr.itemsize)
arange
arange([start,] stop[, step,], dtype=None)
"""
参数1 开始位置
参数2 结束位置,不包含结束位置
参数3 步长
如果开始值为0,且步长为1,那么开始与步长可以省略
"""

示例:

在这里插入图片描述

linspace

创建等差数组

linspace(start, stop, num=50,endpoint=True, retstep=False,)
"""
创建等差数组
	参数1 开始值
	参数2 结束值,包含结束值
	参数3 生成数组的元素的个数
"""

示例:

在这里插入图片描述

logspace

创建等比数组

logspace(start, stop, num=50, endpoint=True, base=10.0)
"""
创建等比数组
	参数1 开始值
	参数2 结束值
	参数3 生成数组的元素的个数
	参数base ---默认是10,生成10^开始,10^结束的等比数组
"""

示例:
在这里插入图片描述

zeros

创建元素全部为 0 的数组

zeros(shape, dtype=None, order='C')
# 创建元素全部为0的数组
# shape 生成数组的形状

示例:

在这里插入图片描述

ones

创建全部为 1 的数组

ones(shape, dtype=None, order='C')
# 创建元素全部为1的数组
# shape 生成数组的形状

示例:

在这里插入图片描述

diag

提取一个对角线 或 构造一个对角线数组。

diag(v, k=0)
"""
提取一个对角线或构造一个对角线数组。
"""

当 v 为2位数组,提取对角线:

在这里插入图片描述

当 v 为1维数组,构造一个对角线数组:

在这里插入图片描述

eye

返回一个 2维数组,对角线上是 1,其他地方是 0

eye(N, M=None, k=0, dtype=float, order='C')
"""
返回一个2-D数组,对角线上是1,其他地方是0
"""

示例:

在这里插入图片描述

2、随机数组

rand

创建一个均匀分布的【小数】数组,随机数在 [0,1) 之间

rand(*dn)
"""
创建一个均匀分布的小数数组,随机数在[0,1)之间
参数:
	只有一个参数,是列维度
	只有两个参数,第一个是行维度,第二个是列维度
	有三个参数,第一个是块维度,第二个是行维度,第三个是列维度
rand 和 random 和 random_sample 是一样的
"""

示例:

在这里插入图片描述

randn

创建符合【正态分布】的数组

randn(*dn)
"""
创建符合正态分布的数组
参数 跟rand一样
同standard_normal一样
"""

示例:

在这里插入图片描述

randint

生成随机【整数】数组

randint(low, high=None, size=None)
"""
生成随机整数 数组
[low,high)
size 可以是元素个数,也可以是生成数组的形状
"""

示例:

在这里插入图片描述

uniform

生成指定范围内的随机小数的均匀数组

uniform(low=0.0, high=1.0, size=None)
"""
生成指定范围内的随机小数的均匀数组
生成[low,high)的随机均匀分布的小数
"""

示例:

在这里插入图片描述

(二)数组的类型及形状

1、数据类型 dtype

Numpy 里面的数据类型,其实就是封装了 python 里面基础的数据类型,然后还进行细致划分,之后封装为 np.数据类型

  • 创建数组的时候,可以通过 dtype 属性来指定 元素的数据类型
# 创建一个数组
arr = np.array([1,2,3,4],dtype=np.float32)
print("arr:\n",arr)
print("arr 的元素类型:\n",arr.dtype)
  • 也可以进行强制转换
# res = np.bool(1)
# res = np.bool(0)
res = np.float32(5)
print("res:\n",res)
  • 可以通过 astype 来修改数据类型
# 将arr的float32类型转化为int32类型
arr = arr.astype(np.int32)
print("arr:\n",arr)
print("arr 的元素类型:\n",arr.dtype)
  • ndarray 也可以存储复合数据类型 — 了解
# 存储人对象 ---人对象 3个属性 ---姓名,身高,体重
df = np.dtype([("name",np.str,40),("height",np.float32),("weight",np.float32)])
# 创建一个存储复合数据的数组对象
arr = np.array([("zs",168.5,50.5),("ls",178.0,65.0),("ww",172,55)],dtype=df)
print("arr:\n",arr)

2、形状 shape

# 创建一个数组
# 形状 ---shape ---元组
arr = np.arange(16)
print("arr:\n",arr)
print("arr 的形状:\n",arr.shape)
  • 可以通过 修改数组的属性,改变数组的形状
# 1、通过 shape属性进行修改
arr.shape = (4,
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值