前往小程序,Get更优阅读体验!
立即前往
发布

numpy

原创
作者头像
逸澄
发布2025-02-26 19:43:05
发布2025-02-26 19:43:05
7000
代码可运行
举报
运行总次数:0
代码可运行
  1. 生成数组

* np.zeros(shape=[],dtype=)

* np.ones(shape=[],dtype=)

* np.empty 随机初始值

* np.ones\_like(array)

* np.empty\_like(array)

* np.zeros\_like(array)

代码语言:python
代码运行次数:0
复制
import numpy as np

a1 = np.zeros((3,3),dtype = np.float32)

a2 = np.zeros\_like(a1)

a3 = np.ones((3,3),dtype = np.float32)

a4 = np.ones\_like(a3)

a5 = np.empty\_like(a4)
  1. 构造随机矩阵
代码语言:python
代码运行次数:0
复制
#构造随机矩阵

a1 = np.random.rand(3,3) #随机构造一个3x3 的矩阵

a2 = np.random.rand(3,3)



a3 = np.random.randint(10,size = (3,3)) #返回随机整数

a4 = np.random.randint(10,size = (3,3))
代码语言:python
代码运行次数:0
复制
#随机高斯均值

mu,sigma = 0,0.1

norm\_array = np.random.normal(mu,sigma,10)

norm\_array
代码语言:python
代码运行次数:0
复制
#洗牌

np.random.shuffle(norm\_array)

norm\_array
代码语言:python
代码运行次数:0
复制
#随机种子

np.random.seed(100)

               
  1. 读写np 数组,用于保存中间结果

* 推荐保存成.npy 即矩阵文件,可以直接load 不用做其它处理

* 对ndarray 来说,里面的每个元素必须是同一类型的,如果不是的话,会自动的向高精度进行转换

* 数组填充 fill()

* 赋值:

* 直接用等号赋值的话,两个array 指向同一个内存地址,因此一个array 改变会影响另一个;

* 如果不想有上述的效果,则用copy 来复制

代码语言:python
代码运行次数:0
复制
np.save('norm\_array.npy', norm\_array)

norm\_array2 = np.load('norm\_array.npy')

norm\_array2



array2 = array+1 #broadcast, array 中每个数值都进行加1 操作



array3.dtype



array3.itemsize 



array3.size #总共有多少个元素

array3.fill(0)

array3.ndim #显示维度
代码语言:python
代码运行次数:0
复制
arr = array3.copy()

arr[1,2] = 1

arr #arr 变化

array3 #array3 没变
  1. 用mask(掩码) 来筛选数据
代码语言:python
代码运行次数:0
复制
grade  = np.arange(0,100,10)

mask = np.array([0,0,0,0,1,1,1,1,1,1],dtype = bool) #0,1 转成bool 类型



#mask 作用再数组上,=True 保留

grade[mask]
代码语言:python
代码运行次数:0
复制
#根据条件,找到索引

np.where(grade>50)
  1. 数值运算
代码语言:python
代码运行次数:0
复制
#数值运算

sum\_array = np.array([[1,2,3],[4,5,6]])

np.sum(sum\_array,axis=0) #沿着哪个轴进行相加

np.sum(sum\_array,axis=1)
  1. 找索引位置,例如最小值的索引、最大值的索引 , 也可以指定轴
代码语言:python
代码运行次数:0
复制
#找索引位置,例如最小值的索引、最大值的索引 , 也可以指定轴

sum\_array.argmin()

sum\_array.argmax()
  1. 排序
代码语言:python
代码运行次数:0
复制
排序

li = [random.randint(0,9) for \_ in range(21)]

array = np.array(li)

array = np.reshape(array,[3,7])

np.sort(array,axis=1)
  1. 生成某个范围均匀分布的n 元素数组
代码语言:python
代码运行次数:0
复制
#生成某个范围均匀分布的n 元素数组

array = np.linspace(0,9,11)  #start,stop,num
  1. 增加一个维度
代码语言:python
代码运行次数:0
复制
#增加一个维度

array.shape #一个一维数组

array1 = array[np.newaxis,:]  #可以在前面增加一个维度,也可以在后面增加一个维度

array1.shape



array2 = array[:,np.newaxis]

array2.shape
  1. 压缩多余的轴
代码语言:python
代码运行次数:0
复制
#压缩多余的轴

array3 = array2.squeeze()

array3.shape
  1. 转置
代码语言:python
代码运行次数:0
复制
#转置:

array4 = np.linspace(1,10,10)

array4.shape = 2,5

array4.T

array4
  1. 数组连接: concat
代码语言:python
代码运行次数:0
复制
#数组连接: concat

array5 = np.linspace(10,20,10)

array5.shape = 2,5

array6 = np.concatenate((array4,array5),axis = 0)

array6.shape
  1. 拉长操作,打平array,回到1维数组
代码语言:python
代码运行次数:0
复制
#拉长操作,打平array,回到1维数组

array7 = array6.flatten()

array7.shape

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档