2.1 掌握NumPy数组对象ndarray


ndarrary:NumPy库的心脏
ndarray:多维数组,具有矢量运算能力,且快速、节省空间
可对整组数据进行快速运算的标准数学函数、线性代数、随机数生成等功能
import numpy as np
NumPy提供了两种基本的对象:ndarray和ufunc。
narray是存储但艺术组类型的多维数组。
ufunc是能够对数组进行处理的函数。

2.2.1 创建数组对象

1.数组创建

numpy.array(object, dtype=None, copy=True, order=‘K’,subok=False, ndmin=0)
array函数的主要参数及其说明
在这里插入图片描述

import numpy as np
arr1=np.array([1,2,3,4])  # 创建一维数组
print("一维数组:", arr1)
arr2 = np.array([[1,2,3,4], [4,5,6,7], [7,8,9,10]])  #创建二维数组
print("二维数组:\n", arr2)

在这里插入图片描述

2.数组属性:ndarray(数组)是存储单一数据类型的多维数组。

在这里插入图片描述

print("维数:", arr2.ndim)
print("形状:", arr2.shape)
print("元素个数:", arr2.size)
print("类型:", arr2.dtype)
print("元素大小:", arr2.itemsize)

在这里插入图片描述

import numpy as np
arr1=np.array([1,2,3,4])  # 创建一维数组
print("一维数组:", arr1)
arr2 = np.array([[1,2,3,4], [4,5,6,7], [7,8,9,10]])  #创建二维数组
print("二维数组:\n", arr2)
arr2 = np.array([[1,2,3,4], [4,5,6,7], [7,8,9,10]])
print(arr2)
print("维数:", arr2.ndim)
print("形状:", arr2.shape)
print("元素个数:", arr2.size)
print("类型:", arr2.dtype)
print("元素大小:", arr2.itemsize)

# 重新设置数组的shape属性
arr2.shape = 4,3
print(arr2)

# 使用arange函数创建数组
# 通过指定开始值、终值和步长,不含终值
print(np.arange(0,1,0.1))
# 使用linspace函数创建数组
# 通过指定开始值、终值和元素个数,包括终值
print(np.linspace(0,1,5))
# 使用logspace函数创建数组
# 通过指定开始值、终值和元素个数,包括终值
#logspace函数和linspace函数类似,创建的是等比数列
print(np.logspace(0,1,5))
# 使用zeros函数创建数组
# 创建全部为0的数组
print(np.zeros((2,3)))
# 使用ones函数创建数组
# 创建全部为1的数组
print(np.ones((2,3)))
# 使用eye函数创建数组
# 创建主对角线为1,其余为0的数组
print(np.eye(3))
# 使用diag函数创建数组
# 创建主对角线为任意值,其余为0的数组
print(np.diag([1,2,3,4]))

在这里插入图片描述

3.数组数据类型

NumPy基本数据类型与其取值范围(部分)
在这里插入图片描述

print(float(5))  # 整型转为浮点数
print(int(23.4))  # 浮点数转为整型

在这里插入图片描述

2.1.2 生成随机数

random函数是最常见的生成随机数的方法。

print(np.random.random(10))

在这里插入图片描述
rand函数可以生成均匀分布的随机数

print(np.random.rand(2,3))

在这里插入图片描述
randn函数可以生成服从正态分布的随机数

print(np.random.randn(2,3))

在这里插入图片描述
randint函数可以生成给定上下限范围的随机数
numpy.random.randint(low,high=None, size=None, dtype=‘1’) # size为数组的shape
创建一个最小值不低于 2、最大值不高于 10 的 2 行 3 列数组

print(np.random.randint(2,10,size=[2,3]))

在这里插入图片描述

random模块常用随机数生成函数

在这里插入图片描述

2.1.3 通过索引访问数组

1.一维数组的索引

在这里插入图片描述

arr = np.arange(10)
print(arr)
print(arr[8])
print(arr[1:8])  # 包括arr[1],但不包括arr[8]
print(arr[1:8:2])  #2表示步长隔一个元素取一个元素

在这里插入图片描述

2、多维数组的索引

多维数组的每一个维度都有一个索引,各个维度的索引之间用逗号隔开。

arr = np.array([[1,2,3,4,5], [4,5,6,7,8], [6,7,8,9,0]])
print(arr)
print(arr[0, 3:5]) # 索引第0行中第3列和第4列的元素
print('++++++++++++')
print(arr[1:, 2:])  #第2行第2行的第3-5列
print('-----------')
print(arr[:,2])

在这里插入图片描述

2.1.4 变换数组的形态

arr = np.arange(12)
print(arr)
arr = arr.reshape(3,4)  # reshape()改变数组的形状
print(arr)
print(arr.ravel())  #ravel()展平数组
print(arr.flatten()) # flatten()横向展平
print(arr.flatten('F')) # flatten()纵向展平
print('2------------')
arr2 = arr*3
print(arr2)
print(np.hstack((arr,arr2))) # 使用hstack()函数横向组合
print(np.vstack((arr,arr2))) # 使用vstack()函数横向组合
print(np.concatenate((arr,arr2),axis=1)) # 使用concatenate()函数组合,axis=1横向,axis=0纵向
print(np.hsplit(arr,2)) #使用hsplit()横向分割
print(np.vsplit(arr,1)) #使用vsplit()纵向分割
print(np.split(arr,2,axis=1)) #使用split()分割,axis=1横向,axis=0纵向

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清木!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值