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]]
'''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值