当前位置: 首页 > news >正文

龙岩网站建设行情推广项目网站

龙岩网站建设行情,推广项目网站,厦门建站公司哪家好,优秀设计案例网站Numpy官方手册:Array objects — NumPy v1.24 Manual 创建数组 1.1 从现有数据创建 重要类型 np.ndarray # 判断是否可以迭代 注意0维标量不可以遍历 print(__iter__ in dir(np.ndarray) and __getitem__ in dir(np.ndarray))np.array(object, dtypeNone) objec…

Numpy官方手册:
Array objects — NumPy v1.24 Manual

创建数组

1.1 从现有数据创建

  1. 重要类型 np.ndarray
# 判断是否可以迭代 注意0维标量不可以遍历
print('__iter__' in dir(np.ndarray) and '__getitem__' in dir(np.ndarray))
  1. np.array(object, dtype=None)
    • object:array_like,类似于数组的对象可以是列表元组可迭代对象。如果object是标量,则返回包含object的0维数组
    • dtype:data-type,数组所需的数据类型。如果没有给出,会从输入数据推断数据类型 创建一个数组对象并返回(ndarray实例对象)
#利用列表生成array
arr = np.array([1,2,3,4],dtype=np.int32)arr2 = np.array([[1,2,3],[4,5,6],[7,8,9]])
np.shape #(0轴元素数,1轴元素数)
  1. 注意array和python的list的区别
    • 数组每个大小一致,列表可以放任意类型元素
    • 数组是固定大小,调整大小或形状需要使用reshape和resize;列表是动态的,可以使用append和extend随意添加
    • ndarray的切片是引用,对切片操作会影响原array。而python中的列表不会
  2. 常用属性和方法:
    • ndim, shape, size, dtype, itemsize
    • ndarray.shape: 返回形状,一个元组
    • ndarray.astype(type): 改变类型,返回数值变为type类型的新数组

1.2 从形状或值创建

  1. 创建空数组
  • np.empty(shape, dtype=np.float64) :返回给定形状和类型且未初始化的新数组
  • np.empty_like(prototype, dtype=None):返回形状和类型与给定 prototype 相同的新数组,prototype:array_like
  1. 创建填充数值的数组
  • np.zeros(shape, dtype=np.float64) :返回给定形状和类型的新数组,并用零填充
  • np.ones(shape, dtype=np.float64) :返回给定形状和类型的新数组,并用1填充
  • np.full(shape, fill_value, dtype=None):返回给定形状和类型的新数组,并用fill_value 填充
  1. 创建特殊矩阵数组
  • np.eye(N, M=None, k=0, dtype=np.float64):返回单位矩阵,注意k值,为索引
  • np.identity(n, dtype=np.float64):返回 n*n 的单位数组(主对角线为1,其他元素为0的方形数组)

1.3 从数值范围创建数组

  1. np.arange([start,] stop[, step,], dtype=None)
    • 返回给定区间内的均匀间隔值构成的数组
    • 和python的 range 区别在于可以使用浮点数或其他类型
np.arange(1.,11.,2.,np.dtype=float32)
#对比
np.array(range(1,11,2))
  1. np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=np.float64)
    • 把给定区间分成 num 个均匀间隔的样本,构成数组并返回(等差数列)
    • num:生成的样本数量
    • endpoint:如果为 True, 则stop 为最后一个样本。否则,stop值不包括在内
    • retstep:如果为 True,返回 (samples, step), step 是样本之间的间隔
    • dtype:如果没有给出dtype,则从 start 和 stop 推断数据类型。注意整数数值会被推断成 np.float64
  2. numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)
    • 把给定区间分成 num 个按对数尺度均匀间隔的样本,构成数组并返回
    • 对应等比数列,乘数是base

关于形状

  1. 形状可以从轴和维度去理解,3维的 shape(1(0轴),2(1轴),3(2轴)) = [ [0,0,0] , [0,0,0] ];在打印时,array的打印会带有最外层[ ],注意去掉后再理解维数。
  2. np.reshape(a, newshape)
    • 保证 size 不变,在不更改数据的情况下为数组赋予新的形状
    • newshape的一个形状维度可以是-1,值将自行推断
arr = np.arange(0,24).reshape(2,12) #ndarray.reshape
print(arr.size) #24
arr1 = arr.reshape(4,2,3)
print(arr1.size) #24#注意newshape可以为一个整数,会自动成为元组
#np.reshape(arr,6) == np.reshape(arr,(6,)) np.reshape(arr,(2,-1)) #此时-1位置值自动判断,大致为size/2
  1. np.resize(a, new_shape): 返回具有指定形状的新数组
  2. ndarray.resize(new_shape): 直接修改原数组的形状,无返回值
  3. 注意resize和reshape区别:
    • resize 可以形状不同,并添加元素,是原地操作
    • reshape 在原来size大小基础上操作

运算操作

算术和比较操作 ndarrays 被定义为逐元素操作

  1. 形状一样可以操作
  2. 同时满足广播机制则可以操作

广播机制

后缘维度:比如(3,4)可以广播成(2,3,4),从后往前看,看短的一端
后缘维度相同或者不同的维度有1,可以广播
可以理解为 1=赖子
比如(1,3,4)也可以广播成(2,3,4),1可以在任何位置,可以变换为任何数字
比如(2,1,4),(1,3,4)也可以互相广播

索引切片

  1. 规则
  • 切片不降维(锁定形状),索引降维
  • 数组切片不会复制内部数组数据,只会生成原始数据的新视图
  1. 数组的特殊索引、切片
  • arr[1,0] 第一个维度取索引1,第二个维度取索引0
  • arr[:2,1:2] 第一个维度取切片 :2,第二个维度取切片 1:2
  1. 花式索引:
  • arr[[0,2]] 等价于arr[0]和arr[2]的结果合并
  • arr[[0,2],[1,0]] 等价于a[0,1]和arr[2,0]的结果合并
  • arr[[0,2,1],[1,1,0]] 等价于a[0,1]和arr[2,1]和arr[1,0]的结果合并
  1. 布尔索引:arr[[True,False,True]] 将True的结果合并
import numpy as np
lis = [[1, 2], [3, 4], [5, 6]]
arr = np.array(lis)
print(arr[1, 0])
print(arr[1][0])
print(arr[:2, 1:2])
print(arr[:2][1:2])
import numpy as np
x = np.array([[1, 2], [3, 4], [5, 6]])
print(x[[1, 2]]) # 等价于x[1]和x[2]组成的数组
print(x[[0, 1, 2], [0, 1, 0]]) # 等价于x[0, 0]、x[1, 1]和x[2, 0]组成的数组
print(x[[True, False, True]])
print(x < 4)
print(x[x < 4])
print(x[np.array([[True, True], [True, False], [False,False]])])

常用操作

ndarray.flatten(): 拍扁成一维
ndarray.T: (1,2,3,4)->(4,3,2,1)
np.swapaxes(a,axis1,axis2): (1,2,3)->(1,3,2)只能交换两个轴
np.transpose(a,axes=None): 默认为转置,可以交换更多轴 使用元组编号排序
np.expend_dims(arr,axis=n):添加维度,相当于在axis的索引位置插入1值
np.squeeze(arr,axis=None): 删除值为1的维度, 相当于在axis的索引位置删除1值,None则1值全部删除,删除位置不等于1则报错
np.concatenate((a1,a2,...),axis=0): 拼接a1,a2,a3… 沿着指定轴。

  • 按哪个轴拼接,则按哪个轴相加。
  • 条件:除了拼接的那个轴不同,其他轴都必须相同
  • 拼接后维度不变
  • 拼接自己注意参数为(a1,)

np.stack(arr,axis): 堆叠

  • 会改变维度
  • 形状必须相同

np.matmul(a,b) : ‘a@b’ 两个数组的矩阵乘积

  • 高维矩阵相乘 https://zhuanlan.zhihu.com/p/337829793
  • 基本是最后两维为(m,n)(n,k)->(m,k) 以矩阵做操作
  • matmul 保证最后两维,其他维度需要可广播
  • dot 保证最后两维,其他维无关

np.max(arr,axis=0,keepdims=True):

  • 返回沿给定轴的最大值,axis没有指定时,默认为None,表示返回所有元素的最大值
  • axis指定哪个轴则消灭哪个轴,keepdims则将该轴保留为1
  • np.mean,var,std 参数同max

np.prod(a, axis=None, keepdims=np._NoValue, initial=np._NoValue):

  • 返回给定轴上数组元素的乘积
  • 默认的axis=None将计算输入数组中所有元素的乘积
  • np.sum 参数同

np.nonzero(a) :返回非0元素的索引,主要用于获取True的索引
np.where(condition, x=None, y=None)

  • 根据条件获取索引, x和y同时传参或同时不传
  • 注意: np.where(x!=0) == np.nonzero(x)

np.argwhere(a): 找出数组中按元素分组的非零元素索引

import numpy as npx = np.array([[3,0,0],[0,4,0],[5,6,0]])
print(np.nonzero(x)) #[0, 1, 2, 2],[0, 1, 0, 1]
print(x[np.nonzero(x)]) #花式索引
print()
print(np.where(x>3)) #[1, 2, 2] [1, 0, 1]print(np.where( [[True,False],[True,True]],[[1,2],[3,4]],[[5,6],[7,8]] ))
#[[1 6] [3 4]] 为true的地方为x的值,false的地方为y的值print(np.argwhere(x))
'''
[[0 0][1 1][2 0][2 1]]
'''

np.argmax(a,axis=None): 返回沿轴的最大值的索引
np.maximum(x1,x2): 返回x1和x2逐个元素比较中的最大值

生成随机数

对象 np.random
np.random.normal(miu=0.0, scale=1.0, shape=None): normal是正态分布,miu为期望值,scale是标准差,size是想生成的shape
np.random.randn(shape):从标准正态分布中取样本, 即默认miu=0.0, scale=1.0
np.random.randint(low, high=None, size=None): 从[low,high)范围的离散均匀分布中获取随机数,整数型
np.random.uniform(low=0.0, high=1.0, size=None): 返回从 [low, high) 均匀分布中抽取的随机样本,实数型
np.random.permutation(x): x是int 或者array_like;只对x的第一个维度0轴进行随机排列,返回新的数组
np.random.seed(x): 随机数种子 x为int;固定随机数(每次刷新运行值不变),解除固定可使用seed() 不传参

http://www.ritt.cn/news/16198.html

相关文章:

  • 创新的做pc端网站热搜榜排名前十
  • 集团网站开发湖南发展最新消息公告
  • b2b免费网站有哪些百度seo推广首选帝搜软件
  • 陵水网站建设装修设计公司阿里指数在线查询
  • 网站建设faq系统指什么sem搜索
  • 公司网站制作方案哪些网站可以免费推广
  • 深圳市网站建设制作设计平台新乡网站seo
  • 保定比较好的网站建设公司电商怎么做新手入门
  • 网站推广咋做的2020国内十大小说网站排名
  • 西部数码网站管理助手 xpapp开发自学教程
  • wordpress 分类链接郑州seo排名哪有
  • 做网站和做微信小程序windows优化大师是电脑自带的吗
  • 上海青浦区网站建设公司超级软文
  • 有个可以做图片的网站seo优化排名工具
  • 公司用wordpress建站用花钱百度在线翻译
  • h5网站制作接单网站制作多少钱一个
  • 专业做轮胎的网站seo收费还是免费
  • 网站建设优化去哪学中山百度seo排名公司
  • 美颂雅庭装饰公司电话seo sem是什么
  • 单一产品网站如何做seo广州短视频代运营
  • 学校微网站模板下载地址外贸建站教程
  • 联盟网站制作搜索引擎优化seo应用
  • 怎么做点击图片进网站我想做电商怎么加入
  • 行业门户网站 建站线上营销方案
  • 吧网站做软件的软件百度竞价排名价格
  • 制作一个教育网站数据分析工具
  • 免费织梦网站源码怎么做市场推广
  • 福州市工程建设质量管理协会网站青岛网站建设公司排名
  • 济阳做网站多少钱如何开发网站
  • 南阳微网站南昌网站seo外包服务