Numpy 模块的使用

1.数组的创建

range、np.array、np.zeros、np.ones、np.full、np.arange
#  文件介绍了numpy创建数组的一些基本操作
#  是之后学习AI的一个重要基础
import array
import numpy as np
L= list(range(0,10))
print(L)
A = array.array('i', L)       #  i表示数据结构为整形
print(A)

arr=np.array([1, 4, 2, 5, 3])  #NumPy 要求数组必须包含同一类型的数据。
print(arr)

#明确要求数据类型
arr2=np.array([1.12, 2, 3, 4], dtype='float32')
print(arr2)

arr3=np.array([range(i, i + 3) for i in [2, 4, 6]])
print(arr3)

arr4=np.array(range(1,10))
print(arr4)

arr5=np.zeros((2,5),dtype='float32')
print(arr5)
arr5=np.ones((3,5),dtype=int)
print(arr5)
##  自定义
print(np.full((2,2),3.14,dtype='float32'))

# 创建一个3×5的浮点型数组, 数组的值是一个线性序列
# 从0开始, 到20结束, 步长为2
# (它和内置的range()函数类似)
print(np.arange(0, 20, 2))
np.linspace、np.random.random、np.random.normal、np.random.randint、np.eye、np.empty
# 创建一个5个元素的数组, 这5个数均匀地分配到0~1
print(np.linspace(0, 10, 5))

# 创建一个3×3的、 在0~1均匀分布的随机数组成的数组
print(np.random.random((3, 3)))

# 创建一个3×3的、 均值为0、 方差为1的
# 正态分布的随机数数组
arr=np.random.normal(0, 1, (3, 3))
print('arr[0][0]:',arr[0][0])

# 创建一个3×3的、 [0, 10)区间的随机整型数组
print(np.random.randint(0, 10, (3, 3)))

# 创建一个3×3的单位矩阵
print(np.eye(3))

# 创建一个由3个整型数组成的未初始化的数组
# 数组的值是内存空间中的任意值
print(np.empty(3))

2.数组的属性及索引

import numpy as np

#数组的属性
np.random.seed(0) # 设置随机数种子
x1 = np.random.randint(10, size=6)         # 一维数组
x2 = np.random.randint(10, size=(3, 4))    # 二维数组
x3 = np.random.randint(10, size=(3, 4, 5)) # 三维数组

# nidm(数组的维度) 、 shape(数组每个维度的大小) 、size(数组的总大小)
print("x3 ndim: ", x3.ndim)
print("x3 shape:", x3.shape)
print("x3 size: ", x3.size)
#每个数组元素字节大小的 itemsize, 以及表示数组总字节大小的属性 nbytes
print("itemsize:", x3.itemsize, "bytes")
print("nbytes:", x3.nbytes, "bytes")

#数组的索引
#多维数组中, 可以用逗号分隔的索引元组获取元素
print(x2[0,0])

3. 数组的切片

#本部分介绍数组的切片  获取子数组
#用切片(slice) 符号 获取子数组, 切片符号用冒号(:)
import numpy as np
x = np.arange(10)
print( x[:5]  )
print( x[::2] ) # 每隔一个元素
print( x[1::2]) # 每隔一个元素, 从索引1开始
#  多维子数组
x2=np.random.randint(0,10,(3,3))
print(x2[:2, :3]) # 两行, 三列
print(x2[:, 0])   # x2的第一列
print(x2[0, :])   # x2的第一行

4.数组的变形 reshape()函数

import numpy as np
#可以发现前两个print出来的内容是一样的 并没修改原始数组
grid = np.arange(1, 10)
grid.reshape((3, 3))
arr=grid.reshape((3, 3))

5.数组的拼接和连接

#拼接或连接 NumPy 中的两个数组主要由
# np.concatenate、 np.vstack 和 np.hstack 例程实现
import numpy as np
x = np.array([1, 2, 3])
y = np.array([3, 2, 1])
print(np.concatenate([x, y]))
z = [99, 99, 99]
print(np.concatenate([x, y, z]))

#  np.concatenate 也可以用于二维数组的拼接:
grid = np.array([[1, 2, 3],[4, 5, 6],[7,8,9]])
print(np.concatenate([grid,grid]))

# 沿着第二个轴拼接(从0开始索引)
print(np.concatenate([grid, grid], axis=1))

#沿着固定维度处理数组时, 使用 np.vstack(垂直栈) 
# 和np.hstack(水平栈) 函数
x = np.array([1, 2, 3])
grid = np.array([[9, 8, 7],[6, 5, 4]])
# 垂直栈数组
np.vstack([x, grid])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值