#%% md
### **为什么numpy比原生python快?**
#%%
import numpy as np
import time
# 验证:numpy计算⽐原⽣python好
start_time = time.time()
numbers = list(range(1,1000000))
total = sum(numbers)
end_time = time.time()
print('原⽣Python计算100万个元素的和耗时:',total,end_time - start_time)
start_time2 = time.time()
# arange numpy里带的数组函数
numbers2 = np.arange(1,1000000).astype(np.int64) # astype转成整数64位
total2 = np.sum(numbers2)
end_time2 = time.time()
print('NumPy计算100万个元素的和耗时:',total2,end_time2 - start_time2)
#%% md
### **创建一维数组**
#%%
# 列表进行转换
a = np.array([1,2,3])
a
#%%
print(a,type(a)) # <class 'numpy.ndarray'>表示数组
#%%
# np.arange()
a = np.arange(10) # 和range()类似
print(a,type(a))
#%%
arl = np.linspace(2.0,3.0,num=5) # 2.0-3.0之间取5等数,等距
print(arl)
#%% md
### **创建二维数组**
#%%
lst = [[1,2],[3,4],[5,6]]
# 创建一个2*3的二维数组
t = np.array(lst)
print(t)
#%%
lst = [[1.0,2],[3,4],[5,6]] # 只要有一个有精确,那么所以的都会精确
t = np.array(lst)
print(t)
#%%
np.zeros((3,4)) # 创建⼀个3*4的全零⼆维数组
#%%
np.ones((2,3)) # 创建⼀个2x3的全一⼆维数组
#%%
np.eye(2) # 创建⼀个2x2的单位矩阵
#%% md
### **Numpy数组的运算**
#%%
arr1 = np.array([[1.,2.,3.],[4.,5.,6.]])
print(arr1)
print('-'*30)
print(arr1 + arr1) # 对应位置元素进行相加
print('-'*30)
print(arr1 - arr1)
print('-'*30)
print(arr1 * arr1)
print('-'*30)
print(arr1 / arr1)
#%%
1/arr1 #广播机制 1/每一个
#%% md
### **基本的索引和切片**
#%%
lst = [1,2,3,4,5]
print(lst[1:3])
#%%
ar = np.arange(5,20)
print(ar)
print('-'*30)
print(ar[2:5])
print('-'*30)
print(ar[1::2])
#%%
# 二维数组
ar = np.arange(16).reshape(4,4) # 用0-15创建一个4*4的二维数组
ar
#%%
ar[1] # array([4, 5, 6, 7]) 默认是取行
#%%
print(ar[:,1]) # 逗号前是行,逗号后是列
#%%
# 取6
print(ar[1,2])
#%%
# 取 5 6 9 10
print(ar[1:3,1:3])
#%% md
### **生活案例小实战**
#%%
# 假设的身高和体重数据
heights = np.array([1.65,1.75,1.20,1.70,1.60])
weights = np.array([65,70,80,75,55])
#%% md
### **常用统计函数**
#%%
exam_scores = np.array([85,69,85,98,85,32,47,69,88,69,65,64,57])
print('最大值',np.max(exam_scores))
print('最小值',np.min(exam_scores))
print('平均值',np.mean(exam_scores))
#%% md
### **where的使用**
#%%
arr1 = np.array([2,7,22,88,58])
# 按条件筛选,如果只有一个条件,返回的是符合条件对应的下标
np.where(arr1 > 30)
#%%
# 三元表达式:为真的结果if 条件 else为假的结果
# 满足条件,输出100,不满足则对应位置位-100
print(np.where(arr1 > 30,100,-100))
#%% md
### **数学公式**
#%%
p1 = np.array([1,2])
p2 = np.array([4,6])
# np.linalg 线性代数模块
distance = np.linalg.norm(p1 - p2)
distance
#%% md
### **图像处理**
#%%
import numpy as np
import matplotlib.pyplot as plt
# F:\python爬虫知识点\上课内容\25-js逆向4\js逆向.assets\1701958877286.png
n1 = plt.imread(r'F:\python爬虫知识点\上课内容\25-js逆向4\js逆向.assets\1701958877286.png')
plt.imshow(n1)
plt.show()
numpy数组
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 数组的切片与索引 一维NumPy数组的切片操作与Python列表的切片一样 通过下标选择该数组3-7的数In [1...
- NumPy数组对象 NumPy中的多为数组称为ndarray,它有两部分组成 数据本身 描述数据的元数据 NumP...
- NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运...