Day16 数组的创建

数组和列表

import numpy as np
# 一维数组
a=np.array([1,2,3,4,5,6])
# 二维数组
b=np.array([[1,2,3],[4,5,6]])
# 列表
c=[1,2,3,4,5,6]
print(a)
print('-'*15)
print(b)
print('-'*15)
print(c)
 
print(a.shape)
print(b.shape)
 
print(type(a))
print(type(c))

特殊数组的创建

# 创建一个2行3列的全零矩阵
zeros=np.zeros((2,3))
print(zeros)
 
# 创建一个形状为(3,)的全1数组
ones=np.ones((3,))
print(ones)
 
# 创建一个从1到10的数组
arange=np.arange(1,10)
print(arange)

随机数组

import numpy as np
 
# 生成2*3的随机整数数组,范围在1到10之间
a=np.random.randint(1,10,size=(2,3))
 
# 生成0到1之间的随机浮点数
b=np.random.random()
 
# 生成0到1之间满足均匀分布,2*3的随机浮点数数组
c=np.random.rand(2,3)
 
# 生成2*3的标准正态分布的随机数,会有负数
d=np.random.randn(2,3) 

数组的遍历

import numpy as np
scores = np.array([5, 9, 9, 11, 11, 13, 15, 19])
sum = 0
for i in scores:
    sum+=i
print(sum)

数组的运算

import numpy as np
a = np.array([[1, 2], [3, 4], [5, 6]])
b = np.array([[7, 8], [9, 10], [11, 12]])
print(a,"\n")
print(b,"\n")
 
# 前提两个矩阵行列数相同
print(a+b,"\n")
 
# 前提两个矩阵行列数相同
print(a-b,"\n")
 
# 矩阵点乘前提两个矩阵行列数相同
print(a*b,"\n")
 
# 矩阵乘法,3*2的矩阵和2*3的矩阵相乘,得到3*3的矩阵
print(a@b.T,"\n")

数组的索引

# 一维数组索引
 
 
arr1=np.arange(10)
print(arr1)
print(f'数组第一个元素为{arr1[0]}')
print(f'数组最后一个元素为{arr1[-1]}')
print(f'数组索引3,5,8的元素为{arr1[[3,5,8]]}')
 
# 切片取出索引,取左不取右
print(f'去除索引为2到5的元素为{arr1[2:6]}')
 
# 切片从头取到索引5
print(f'索引为开头到5的元素为{arr1[:6]}')
# 切片从索引5开始
print(f'索引为5到结尾为{arr1[5:]}')
# 切片从头取到尾
print(f'索引为开头到结尾为{arr1[:]}')
# 取出偶数索引的元素
print(f'取出偶数索引的元素为{arr1[::2]}')
# 取出奇数索引的元素
print(f'取出奇数索引的元素为{arr1[1::2]}')
# 二维度数组
arr2 = np.array([[1, 2, 3, 4],
                  [5, 6, 7, 8],
                  [9, 10, 11, 12],
                  [13, 14, 15, 16]])
print(arr2)
 
print(f'第一行元素为{arr2[0,:]}') #或arr2[0]
print(f'第二列元素为{arr2[:, 1]}')
print(f'第3行第2列元素为{arr2[2, 1]}')
 
 
# 取出由第1行和第3行组成的新数组。
# 使用整数数组作为行索引 arr[[row1, row2, ...], :]
print(arr2[[0, 2], :])
 
# 取出由第2列和第4列组成的新数组。
# 使用整数数组作为列索引 arr[:, [col1, col2, ...]]
print(arr2[:, [1, 3]])
 
# 取出一个 2x2 的子矩阵,包含元素 6, 7, 10, 11。
# 使用切片 slice arr[row_start:row_stop, col_start:col_stop]
arr2d[1:3, 1:3]
#三维数组
 
# shape用于指定新数组的形状。
#  (3, 4, 5) 表示一个三维数组,这个三维数组有 3 个二维子数组,每个二维子数组有 4 行 5 列。
arr3 = np.arange(3 * 4 * 5).reshape((3, 4, 5))
print(arr3)
 
# 选择特定的层
# 使用整数数组 [0, 2] 作为第一个维度 (层) 的索引
print(arr3[1, :, :])
print(arr3[1, 0:2, :])
print(arr3[1, 0:2, 2:4])

@浙大疏锦行

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值