江苏省住房建设厅网站首页,怎么做一个电商网站吗,wordpress摘要p,企查查官网在线查询Numpy 一、numpy是什么#xff1f;二、N维数组三、数组基本操作四、数组的运算 一、numpy是什么#xff1f;
numpy是一个开源的python科学计算库#xff0c;用于处理任意维度的数组。numpy用ndarray处理多维数组。 import numpy as np np.array创建数组 机器学习数据量很大… Numpy 一、numpy是什么二、N维数组三、数组基本操作四、数组的运算 一、numpy是什么
numpy是一个开源的python科学计算库用于处理任意维度的数组。numpy用ndarray处理多维数组。 import numpy as np np.array创建数组 机器学习数据量很大ndarray速度快。ndarray的优势 内存块风格一体式存储数据类型一样存储数据地址连续直接存取不需要找地址支持并行化运算效率高于python
二、N维数组
数组属性 .shape .ndim 数组维数 .size 元素数量 .itemsize 元素字节大小 .dtype 元素类型 import numpy as np
a np.array([python,hello,i],dtype np.string_)
#指定类型三、数组基本操作
生成数组
101数组固定范围数组
import numpy as np
#生成0、1数组
ones np.ones([4,8])
np.zeros_like(ones)
#生成现有数组
a np.array([[1,2,3],[4,5,6]])
a1 np.array(a)#深拷贝
a2 np.asarray(a)#浅拷贝
a[0,0]1000###a1不变a2改变
#生成固定范围数组
np.linspace(0,100,10)#等差数组指定差值
np.arange(10,50,2)#等差数组,指定步长
np.logspace(0,2,3)#10的次方(2) 正态分布
import numpy as np
import matplotlib.pyplot as plt
#生成正太分布
x1 np.random.normal(1.75,1,1000)
plt.figure(figsize(20,8),dpi100)
plt.hist(x1,100)
plt.show()(3) 均匀分布
import numpy as np
import matplotlib.pyplot as plt
#生成正太分布
x1 np.random.uniform(-1,1,1000)
plt.figure(figsize(20,8),dpi100)
plt.hist(x2,100)
plt.show()数组的索引、切片 对象[:,:] 先行后列 数组的形状修改 1reshape 展成一行重新排列 2resize 3T 转置 数组的类型修改 ndarray.astype(type) ndarray.tostring() 数组的去重 np.unique() 四、数组的运算
逻辑运算 大于小于和赋值。 大于号可以直接判断数组里的值赋值在判断结果说赋值
#生成10名同学5门功课的数据
scorenp.random.randint(40,100,(10,5))
#取出最后4名同学的成绩
用于逻辑判断
test_score score[6:,0:5]
#逻辑判断如果成绩大于60就标记为True否则为False
test_score 60
array([[True,True,True,False,True],
[True,True,True,False,True],
[True,True,False,False,True],
[False,True,True,True,True]])
#B00L赋值将满足条件的设置为指定的值-布尔索引
test_score[test_score 60] 1
test_score
array([1,1,1,59,1],
[1,1,1,59,1],
[1,1,44,44,1],
[59,1,1,1,1]])通用函数 np.all, np.any #判断前两名同学的成绩[02]是否全及格 np.all(score[0:2,:]60) False #判断前两名同学的成绩[02]是否有大于90分的 np.any(scoret[0:2,:]90) True 数组与数值运算对数组中所有值都与数值运算注意对列表运算乘积会复制粘贴数组与数组运算 广播机制数组在进行矢量化运算时要求数组的形状是相等的。当形状不相等的数组执行算术运算的时候就会出现广播机制该机制会对数组进行扩展使数组的shape属性值一样这样就可以进行矢量化运算了。下面通过一个例子进行说明
arr1np.array([[0],[1],[2],[3])
arr1.shape
#(4,1)
arr2 np.array([1,2,3])
arr2.shape
#3,)
arrlarr2
#结果是
array([[1,2,3],
[2,3,4],
[3,4,5],
[4,5,6])广播机制实现了时两个或两个以上数组的运算即使这些数组的shape不是完全相同的只需要满足如下任意一个条件即可。
数组的某一维度等长。其中一个数组的某一维度为1。
广播机制需要扩展维度小的数组使得它与维度最大的数组的shape值相同以便使用元素级函数或者运算符进行运算。