1.安装numpy,scipy, pandas
numpy 高级数组,线性代数中矩阵
scipy 科学计算基础公式库
pandas 数据分析工具
matplotlib 绘图
import numpy as np
import random
#1.使用numpy创建一维数组
lst=[1,2,3,4]#使用列表
tup=(1,2,3,4)#使用元组
#2.创建连续区间的数字的一维数组
# 练习1:产生连续数字1~20的数组(列表生成式,arange)
arr=np.arange(1,21)
print(arr)
# 练习2:产生1 4 7 … 16的数组
arr=np.arange(1,17,3)
print(arr)
# 练习3:产生9~1的数组
arr=np.arange(9,0,-1)
print(arr)
#4.创建随机数的数组(1-9范围内,数组中随机10个数字)
arr=np.random.randint(1,10,size=10)
print(arr)
lst=[random.randint(1,10) for i in range(1,11)]
print(lst)
#5.一维数组元素获取【index】 及查看元素类型dtype
arr=np.array([1,2,3,4,5,6],dtype=np.int8)
print(arr[1].dtype)#默认是 int32,修改后是int8
#numpy int默认是int32 ,也可以自己指定,dtype=np.int8
arr=np.array([1,2,3,4.5,7,8])
print(arr[0].dtype)#float 默认是float64
arr=np.array([1,2,3,4.13,'wang'])
print(arr[4].dtype)#<U4 ,字符串,4代表字符个数
#6.查看维度ndim,元素个数size,数组形状shape
arr=np.array([2,6,1,8,4,9,0,3,7])
print(arr.ndim)# 1 查看维度
print(arr.size)# 9 元素个数
print(arr.shape)# (9,) 形状,每个维度的大小
#多维数组,每个维度下,个数要一致
lst1=[[1,2,3],(4,5,6),[7,8,9],[11,22,33]]
arr=np.array(lst1)
print(arr.shape)##(4, 3)
#7.Numpy创建一个连续数字的二维数组(1~12)
# 1. 一维升维度后变成二维 reshape(x,y,z)
arr=np.arange(1,13)
print(arr.shape)#(12,)
arr2=arr.reshape(3,4)
print(arr2)
# [[ 1 2 3 4]
# [ 5 6 7 8]
# [ 9 10 11 12]]
print(arr2.shape)#(3, 4)
#必须满足 行*列=个数
arr2=arr.reshape(6,-1)# -1表示自动配置剩余维度
print(arr2)
# [[ 1 2]
# [ 3 4]
# [ 5 6]
# [ 7 8]
# [ 9 10]
# [11 12]]
# 2.创建时指定维度(随机数数组)
#8.产生1-9随机数的9个元素的二维数组(要求3*3)
arr=np.random.randint(1,10,size=9)
print(arr.reshape(3,3))
arr=np.random.randint(1,10,size=(3,3))
print(arr)
#三维
arr=np.random.randint(1,13,size=(2,2,3))
print(arr)
print("*"*10)
#9.使用numpy创建矩阵
###方法1: array()函数生成矩阵时数据只能为列表形式
arr=np.array([[1, 2], [3, 4]])
print(arr)
#mat()函数生成矩阵时(字符串或列表形式)
mat1=np.mat([[1, 2], [3, 4]])
print(mat1)
mat2= np.mat("1 2;3 4")
print(mat2)
#10.创建特殊矩阵
print(np.ones((4,4), dtype=np.int8)) #产生全1矩阵
print(np.zeros((5,5), dtype=np.int8)) #产生全0矩阵
print(np.eye(3, dtype=np.int8)) #产生下对角线1矩阵
import matplotlib.pyplot as plt
#11.Numpy 常用替换函数
# np.where(condition, x, y):满足条件(condition),输出x,不满足输出y。
# np.where(condition):满足条件返回给定数组索引
arr=np.random.randint(1,10,size=(3,3))
arr=np.where(arr==0,-1,1)
# 12.Numpy 课堂练习
# 练习1:产生1-9之间的所有数字乱序的3*3二维数组
arr=np.random.randint(1,10,size=(3,3))
print(arr)
# 练习2:模拟抛掷500次硬币,正面表示1,反面表示0
arr=np.random.randint(0,2,size=500)
#print(arr)
# 练习3:模拟抛掷500次硬币,正面表示1,反面表示-1
arr=np.where(arr==0,-1,1)
#print(arr)
# 练习4:绘制随机漫步曲线(cumsum 数组累加求和)
arr=np.cumsum(arr)
print(arr)
plt.plot(arr)
plt.title("title")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()