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

姜堰做网站怎样制作网站二维码

姜堰做网站,怎样制作网站二维码,seo网站推广排名,电影网站盗链怎么做NumPy Numpy(Numerical Python) 是科学计算基础库,提供大量科学计算相关功能,比如数据统计,随机数生成等。其提供最核心类型为多维数组类型(ndarray),支持大量的维度数组与矩阵运算,Numpy支持向…

NumPy

Numpy(Numerical Python) 是科学计算基础库,提供大量科学计算相关功能,比如数据统计,随机数生成等。其提供最核心类型为多维数组类型(ndarray),支持大量的维度数组与矩阵运算,Numpy支持向量处理ndarray对象,提高程序运算速度。

本期我们接着介绍numpy中的方法:

小tips

在介绍之前,说明一个jupyter notebook界面操作方法:

一个变量不需要print打印,可以直接输出结果

比如:

import numpy as np
b = np.array([1,2,3,4,5,6])
b			#直接就可以输出
------------------------------
[1 2 3 4 5 6]

一维数组索引和切片

ndarray对象的内容可以通过索引或切片来访问和修改,与 Python中 list 的切片操作一样。

ndarray 数组可以基于 0 - n 的下标进行索引,并设置 start, stop及 step 参数进行,从原数组中切割出一个新数组。

#一维数组索引和切片,下标位置从0开始
x = np.arange(10)		#array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])x[1]
结果:1
----------------
x[2:7:2]  #表示x从2-7的范围内,隔两步取一个值
结果:array([2, 4, 6])
------------------------------
x[2:]	#表示从第二个位置索引开始切片
结果:array([2, 3, 4, 5, 6, 7, 8, 9])

一维数组负索引和切片的使用

x = np.arange(10)
x[-2]		#负索引位置从-1开始
------------
8

二维数组的索引和切片

#二维数组的索引和切片  先索引行再索引列,精准定位切片位置。
#行、列索引都从0开始
#reshape方法改数组的形状维度x = np.arange(1,13)
a = x.reshape(3,4)		  #a=array([[ 1,  2,  3,  4],#[ 5,  6,  7,  8],#[ 9, 10, 11, 12]])#索引直接获取
a[1]  #索引行
结果:array([5, 6, 7, 8])
-------------------------
a[1][2]  #切行索引为一,列索引为2的值
结果:7
=======================================
#使用坐标获取数组a[:,1]   #所有行的第二列
结果:array([ 2,  6, 10])
-------------------------------
a[2,1]   #第三行第二列
结果:10
---------------------------------
a[::2,0]  #在第一列,隔两步取一行
结果:array([1, 9])
----------------------------------
a[(0,2),(1,2)]   #注意!!!前一个括号内的都是行坐标,第二个都是列坐标,两者一一对应
结果:array([ 2, 11])

二维数组负索引的使用

# 二维数组负索引的使用
x = np.arange(1,13)
a = x.reshape(3,4)		  #a=array([[ 1,  2,  3,  4],#[ 5,  6,  7,  8],#[ 9, 10, 11, 12]])a[-1]    #获取最后一行
结果:array([ 9, 10, 11, 12])
----------------------------
a[::-1]   #行进行倒序
结果:array([[ 9, 10, 11, 12],[ 5,  6,  7,  8],[ 1,  2,  3,  4]])
-------------------------------
a[::-1,::-1]   #行列都倒序
结果:array([[12, 11, 10,  9],[ 8,  7,  6,  5],[ 4,  3,  2,  1]])
------------------------------
a[::,::-1]   #列倒序
结果:array([[ 4,  3,  2,  1][ 8,  7,  6,  5],[12, 11, 10,  9]])

切片数组的复制

#切片数组的复制
#拷贝sub_array=a[:2,:2]
sub_array[0][0]=1000   #将切片位置的值强行替换了
sub_array
------------------------
array([[1000,    2],[   5,    6]])

改变数组的维度

通过reshape方法可以将一维数组变成二维、三维或者多维数组,也可以通过reshape方法将多维数组变成一维。

#改变数组的维度#升维
a=np.arange(24)   #一维数组
结果:array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,17, 18, 19, 20, 21, 22, 23])
----------------------------------
b=np.arange(24).reshape(4,6)  #二维数组
结果:array([[ 0,  1,  2,  3,  4,  5],[ 6,  7,  8,  9, 10, 11],[12, 13, 14, 15, 16, 17],[18, 19, 20, 21, 22, 23]])
-------------------------------------------
c=np.arange(24).reshape(2,2,6)  #三维数组
c
结果:array([[[ 0,  1,  2,  3,  4,  5],[ 6,  7,  8,  9, 10, 11]],[[12, 13, 14, 15, 16, 17],[18, 19, 20, 21, 22, 23]]])
============================
#降维
c.reshape(-1)
--------------------
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,17, 18, 19, 20, 21, 22, 23])

ravel方法和flatten方法

通过ravel方法或flatten方法可以将多维数组变成一维数组。改变数组的维度还可以直接设置Numpy数组的shape属性(元组类型),通过resize方法也可以改变数组的维度。

#ravel方法
np.arange(24).reshape(2,2,6).ravel()
----------------------------------------
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,17, 18, 19, 20, 21, 22, 23])
=============================================
#flattn方法
np.arange(24).reshape(2,2,6).flatten()
------------------------------------------
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,17, 18, 19, 20, 21, 22, 23])

数组的拼接

函数描述
concatenate连接沿现有轴的数组序列
hstack水平堆叠序列中的数组(列方向)
vstack竖直堆叠序列中的数组(行方向)

concatenate()

concatenate 函数用于沿指定轴连接相同形状的两个或多个数组,格式如下:

numpy.concatenate((a1, a2, ...), axis)

a1, a2, …:相同类型的数组

axis:沿着它连接数组的轴,默认为 0

列表的拼接

直接拼接:

#直接拼接
a=[1,2,3]
b=[4,5,6]
a.extend(b)
a
-----------------
[1, 2, 3, 4, 5, 6]

一维数组的拼接:

#一维数组的拼接
x = np.arange(1,4)
y = np.arange(4,7)
np.concatenate((x,y))
-----------------------------
array([1, 2, 3, 4, 5, 6])

二维数组的拼接

#二维数组的拼接   axis=0时,上下拼接。axis=1时,左右拼接。axis默认为0.#行方向的拼接
a=np.arange(24).reshape(4,6)
b=np.arange(18).reshape(3,6)
np.concatenate((a,b),axis=0)
---------------------------------
array([[ 0,  1,  2,  3,  4,  5],[ 6,  7,  8,  9, 10, 11],[12, 13, 14, 15, 16, 17],[18, 19, 20, 21, 22, 23],[ 0,  1,  2,  3,  4,  5],[ 6,  7,  8,  9, 10, 11],[12, 13, 14, 15, 16, 17]])
#列方向的拼接
a=np.arange(24).reshape(4,6)
b=np.arange(28).reshape(4,7)
# np.hstack((a,b))
np.concatenate((a,b),axis = 1)
-------------------------------------
array([[ 0,  1,  2,  3,  4,  5,  0,  1,  2,  3,  4,  5,  6],[ 6,  7,  8,  9, 10, 11,  7,  8,  9, 10, 11, 12, 13],[12, 13, 14, 15, 16, 17, 14, 15, 16, 17, 18, 19, 20],[18, 19, 20, 21, 22, 23, 21, 22, 23, 24, 25, 26, 27]])

数组的转置

将行与列对调,即第一行变成第一列…或第一列变成第一行…的操作即是转置操作。

transpose进行转换

#数组的转置   将行与列对调
#transpose()进行转置a=np.arange(1,13).reshape(2,6)
a
--------------------
array([[ 1,  2,  3,  4,  5,  6],[ 7,  8,  9, 10, 11, 12]])

二维转置

a.transpose()和a.T两种方法都可以转置

#二维转置
a.transpose()
------------------
array([[ 1,  7],[ 2,  8],[ 3,  9],[ 4, 10],[ 5, 11],[ 6, 12]])

或者:

b=np.arange(2,14).reshape(2,6)
b.T
-----------------
array([[ 2,  8],[ 3,  9],[ 4, 10],[ 5, 11],[ 6, 12],[ 7, 13]])

数组的分隔

split分隔

numpy.split 函数沿特定的轴将数组分割为子数组,格式如下:

numpy.split(ary, indices_or_sections, axis)

ary:被分割的数组

indices_or_sections:如果是一个整数,就用该数平均切分,如果是一个数组,为沿轴切分的位置(左开右闭)

axis:沿着哪个维度进行切向,默认为0,横向切分。为1时,纵向切分

#数组分隔
#格式:split()分隔------>numpy.split(ary,indices_or_sections,axis)x = np.arange(1,9)
x
结果:array([1, 2, 3, 4, 5, 6, 7, 8])
----------------------------------------
a = np.split(x,4)
a
结果:[array([1, 2]), array([3, 4]), array([5, 6]), array([7, 8])]

传递数组进行分隔

x = np.arange(1,9)
b = np.split(x,[2,4])	#以传递的数组中,在第2个索引位置和第4个索引位置的前面分隔
b
[array([1, 2]), array([3, 4]), array([5, 6, 7, 8])]

水平分隔

使用hsplit函数可以水平分隔数组,该函数有两个参数,第1个参数表示待分隔的数组,第2个参数表示要将数组水平分隔成几个小数组。

#水平分隔:左右分隔
a = np.arange(24).reshape(4,6)
np.hsplit(a,2)		#分隔a数组,分成两份
--------------------
[array([[ 0,  1,  2],[ 6,  7,  8],[12, 13, 14],[18, 19, 20]]),array([[ 3,  4,  5],[ 9, 10, 11],[15, 16, 17],[21, 22, 23]])]

垂直分割

使用vsplit函数可以垂直分隔数组,该函数有两个参数,第1个参数表示待分隔的数组,第2个参数表示将数组垂直分隔成几个小数组。

#垂直分隔:上下分隔np.vsplit(a,2)
-------------------------------------
[array([[ 0,  1,  2,  3,  4,  5],[ 6,  7,  8,  9, 10, 11]]),array([[12, 13, 14, 15, 16, 17],[18, 19, 20, 21, 22, 23]])]

总结

本篇介绍了一部分Numpy库中的方法,Numpy库很大很丰富,务必整理牢记,对接下来的学习很重要。

加强整理,要动手敲哇。

还有部分方法下期介绍哦~(常用的就剩一点咯)。

http://www.sczhlp.com/news/141917/

相关文章:

  • 手机端网站建设哪家好国外产品设计网站
  • 建网站需要多少资金网站被跳转怎么办
  • wordpress建站两秒打开vs2015 网站开发教程
  • 解码数据结构栈
  • 网站建设策划书是由谁编写的网页设计制作思路
  • 中小企业网站制作模板网站做的好坏主要看
  • 网站建设的目的是什么郑州网上车管所官网
  • 建筑工程公司网站模板下载做租号玩网站赚钱吗
  • 学做网站php做搜狗pc网站快速排
  • 第七章 手写数字识别V4
  • 什么?你的蓝牙用不了了?
  • 外贸自建网站收录网站是什么意思
  • 银川哪家网络公司做网站做得好企业网站建设流程与方法 论文
  • 网站建设 h5网站建设阿里云搭建个人网站
  • 国外网站 icp备案做设计排版除了昵图网还有什么网站
  • 做家务的男人们在哪个网站播出公众号绑定网站
  • 中国网站建设新闻wordpress阅读积分
  • 在国外做电商网站有哪些建e网是干嘛的
  • 南宁网站制作公司哪家好动画师工资一般多少
  • 小橘子被做h网站网站建设与维护期末考试题
  • 一元购网站建设流程图四方区企业型网站建设
  • 30.Linux DHCP 服务器 - 详解
  • 网站建设的发展历程wordpress转载按钮
  • 百度网站建设优化有限公司注册需要什么条件
  • 自己的网站首页背景怎么做房子竣工验收在哪个网站查
  • 汽车网站建设策划方案色盲眼镜
  • 网站建设pdf吸引人的营销标题
  • 通过关键词优化提升企业网站wordpress加音乐播放器
  • 网站右侧浮动广告代码国内网站模板
  • [K230学习笔记] 前言