栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

numpy的安装和创建/numpy数组的索引和切片

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

numpy的安装和创建/numpy数组的索引和切片

安装 1.以管理员的形式打开cmd

2.使用以下命令查看是否安装成功

创建 1.在vscode进行导入numpy模块
import numpy as np
2.创建数组 使用array创建
#使用array创建一维数组
list01 = [1,2,3,4]
np01 = np.array(list01)
print(np01)
#使用array创建二维数组
list02 = [[1,2,3,4],[5,6,7,8]]
np02 = np.array(list02)
print(np02)
#使用array创建三维数组
list03 = [[[1,2,3,4],[5,6,7,8],[9,10,11,12]]]
np03 = np.array(list03)
print(np03)
使用arange创建

arange(start,stop,step,dtype)
1.不写start,默认从0开始
2.左开右闭
3.step步长,不写默认是1

#一维数组
a = np.arange(10) #[0 1 2 3 4 5 6 7 8 9]
a = np.arange(2,10) #[2 3 4 5 6 7 8 9]
a = np.arange(1,10,2) #[1 3 5 7 9]
a = np.arange(1,10,2,dtype=float)
print(a)
#二维数组
#切记前面的12,必须满足3*4
np01  = np.arange(12).reshape(3, 4)
print(np01)
使用 random 创建数组

np.random.random() 生成0到1之间的随机数

#创建一维数组   size生成几个数据,可直接写4
np01= np.random.random(size=4) #[0.13475357 0.8088961  0.52055803 0.49706622]
#创建二维数组  size=(3,4) 3行4列 可用()和[] ,效果一样
np01= np.random.random((3,4))
#创建三维数组  两个三行四列
np01= np.random.random((2,3,4))
print(np01) 
数组的索引和切片 1.普通索引切片 一维数组索引
list01= [1,2,3,4,5]
np01 = np.array(list01,dtype="int32")
print(np01)
"""
正向递增索引 从0开始
1,  2,  3,  4,  5 数据
0   1   2   3   4 索引
1.左开右闭
2.不写startIndex默认从0开始
"""
print(np01[0]) #1
print(np01[1:4]) #[2 3 4]
print(np01[1:5]) #[2 3 4 5]
print(np01[:5]) #[1 2 3 4 5]

"""
反向递减索引 从-1开始
1,  2,  3,  4,  5 数据
-5  -4  -3  -2  -1 索引
1.左开右闭
2.不写startIndex默认从0开始
"""
print(np01[-1]) #5
print(np01[-5:-1]) #[1 2 3 4]
print(np01[-5:]) #[1 2 3 4 5]
一维数组的切片

语法[start:stop:step]

list01= [1,2,3,4,5]
np01 = np.array(list01,dtype="int32")
print(np01)
#正向索引切片
print(np01[:])#从0到0
print(np01[3:])#从3开始到结尾
print(np01[:5])#从0开始到5结尾
print(np01[1:5:2])#步长是2

#反向索引切片
print(np01[::-1])#-1证明是反向获取
print(np01[-5:-2])

#正负一起使用
print(np01[-5:4]) #[1 2 3 4]
二维数组的索引
#创建二维数组
list01= [
    [1,2],
    [3,4],
    [5,6],
    [7,8]
]
np01= np.array(list01)
print(np01)
#print(np01.ndim) #查看维数
print(np01[1])#获取第二行
print(np01[1][1])#获取第二行第一列
二维数组的切片

np01[行-start:行-stop:行-step,列-start:列-stop:列-step]

#创建二维数组
list01= [
    [1,2],
    [3,4],
    [5,6],
    [7,8]
]
np01= np.array(list01)
print(np01)
print(np01[:,:])#所有行所有列
#所有行部分列
print(np01[:,1])#所有行第二列
print(np01[:,0:2])#所有行的第一列和第二列

#部分列所有行
print(np01[1,:])#获取第二行所有列
print(np01[0:2,:])#获取第一和二行所有列
print(np01[::2,:])#获取奇数行所有列

#部分行部分列
print(np01[1,1])#第二行第二列

#组合使用的时候改怎么办
#获取第三行第二列(6),第四行第一列(7)
#行写成元组放在前面,列写成元组放在后面
a= np01[(2,3),(1,0)]
print(a)

#负索引的使用
print(np01[-1])#最后一行
print(np01[::-1])#行倒序
print(np01[::-1,::-1])#行倒序,列倒叙
2.高级索引切片 一维数组的高级索引

np01[索引数组]

np01 = np.array([0,1,2,3,4,5,6,7,8,9])
print("---基础索引---")
print(np01[1])
print(np01[5])
print(np01[8])
index01 = np.array([1,5,8]) #创建一个索引
print("---高级索引---")
print(np01[index01]) #[1 5 8]
二维数组的高级索引

1.np01[行索引数组.列索引数组]
2.np01[list,list]
3.np01[list,数组]

np02 = np.arange(5,25).reshape(4,5)
print(np02)
print("---高级索引---")
row_index = np.array([0,1,2,3])
col_index = np.array([1,2,3,4])
print(np02[row_index,col_index]) #[ 6 12 18 24]

print("---使用list---")
row_list = [0,1,2,3]
col_list = [1,2,3,4]
print(np02[row_list,col_list]) #[ 6 12 18 24]
print("---list和数组混合---")
print(np02[row_index,col_list]) #[ 6 12 18 24]
print(np02[row_list,col_index]) #[ 6 12 18 24]
二维数组的高级切片
np02 = np.arange(5,25).reshape(4,5)
print(np02)
print(np02[0:2,1:5])
print("---高级切片-元组和切片---")
tuple01 = (0,1) #第一行和第二行
print(np02[tuple01,1:5])
print(np02[::2,1:4]) #基础切片[start,stop,step]
tuple01 = (0,2) #第一行和第二行
print(np02[tuple01,1:4])
3.布尔索引 一维数组的布尔索引

True False 和比较运算符进行结合使用

np01 = np.array([1,2,34,5,6,7,8])
print("基础索引")
print("布尔索引")
index01 = np.array([False,True,False,True,False,False,True])
print(np01[index01])

index02 = np.array([False,True,False,True,False,False,True])
booean_index = np01 > 3
print(booean_index)
print(np01[booean_index])
二维数组的布尔索引
np02 = np.arange(5,25).reshape(4,5)
print(np02)
print("---基础索引---")
print(np02[0:2,1:4])
'''
[[ 6  7  8]
 [11 12 13]]
'''
print("---高级索引---")
row_index = np.array([0,1])
col_index = np.array([1,2,3])
print("---布尔索引---")
row_index = np.array([True,True,False,False])
col_index = np.array([False,True,True,True,False])
boolean01 = np.ix_(row_index,col_index)
print(np02[boolean01])
'''
[[ 6  7  8]
 [11 12 13]]
'''
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/589493.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号