IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> numpy(创建数组, 数组类型, 数组维度,特殊数组的创建与数组操作,改变数组类型,数组切片, 数组计算,数组统计计算, 数组数据排序, 数组CSV存储,数组增加,数组删除,集成函数) -> 正文阅读

[开发工具]numpy(创建数组, 数组类型, 数组维度,特殊数组的创建与数组操作,改变数组类型,数组切片, 数组计算,数组统计计算, 数组数据排序, 数组CSV存储,数组增加,数组删除,集成函数)

numpy

numpy(Numerical Python)是Python语言的一个扩展程序库,支持大量
的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库
本质是一个数组,可以为一维、二维多维等

安装:
在pycharm设置中安装

引用:
import numpy

常用:
import numpy as np

?创建数组

创建数组:
numpy使用array([...])建立数组,其中[...]是数组的数据
a = numpy.array([1, 2, 3])

import numpy as np
a = np.array([1, 2, 3])
for i in a:
    print(i)

1
2
3

array = np.array([[1,2,3],[2,3,4]])    (多维每个维度的数据个数需要相等)
for i in range(2):
    print(array[i])

[1 2 3]
[2 3 4]

?数组类型

注:中间无逗号分隔

指定int型
a = np.array([1,2,3],np.int)
print(a)

[1 2 3]

指定float型
a = np.array([1.6,2.0,3],np.float)
print(a)

[1.6 2.  3. ]

指定float型
a = np.array([1.6,2.0,3],np.float)
print(a)

['hello' 'world']

?数组维度

数组维度:
使用ndim获取数组维度
使用shape获取每个维度的大小,shape是一个元祖

a = np.array([1,2,3])
print(a.ndim)
print(a.shape)

1
(3,)    # 三列

a = np.array([[1,2,3],[2,3,4]])
print(a.ndim)
print(a.shape)

2
(2, 3)    # 两行,三列

特殊数组的创建与数组操作

import numpy as np
np.zeros(shape,dtype)创建形状为shape类型为dtype的全0数组
np.ones(shape,dtype)创建形状为shape类型为dtype的全1数组
np.empty(shape,dtype)创建形状为shape类型为dtype的全空数组(非真空),数组内为随机值
np.random.random(shape)创建形状为shape,值为(0,1)范围均匀分布随机值的数组
np.random.randint(a,b,shape)创建形状为shape,值为[a,b)范围内随机整数值的数组
np.random.normal(mu,std,shape)创建形状为shape,平均值为mu,均方差为std的正态分布数组

arange
np.arange(start,end,step,dtype)
创建[start,end),步长为step,类型为dtype的数组,start默认为0,step默认为1
dtype默认为int

linspace
np.linspace(start,end,n,endpoint)    (数组类型为float)
创建将[start,end]按n等分,默认endpoint=True包含end值,endpoint=Flase不包含end值

reshape
a.reshape(m,n...)改变数组a为形状为(m,n...)的数组并返回

ravel
a.ravel()将高维数组a拉伸为一维数组并返回

改变数组类型

np.astype(dtype)改变数组类型为dtype

import numpy as np
a = np.array([1,2,3],np.float)
a = a.astype(int)
print(a.dtype)

int32

?数组切片

a[sliceX,sliceY]
如果sliceX或者sliceY为单一数值,表示取出X行Y列的元素
如果sliceX或者sliceY为:,表示取出一行或一列

a = np.arange(8)
a = a.reshape(2,4)
print(a)
print(a[1,1])
print(a[:,1])
print(a[1,:])
print(a[:,:])

[[0 1 2 3]
 [4 5 6 7]]
5
[1 5]
[4 5 6 7]
[[0 1 2 3]
 [4 5 6 7]]

?数组计算

常数和数组进行四则运算:
结果是每个元素都与该常数进行四则运算

两个相同形状的数组进行四则运算:
结果是数组的每个元素与对应元素进行四则运算

数组统计计算

numpy定义了对数组的最大值max,最小值min,平均值mean,总和值sum的统计运算
a为一个shape(m,n)的二维数组,规则如下:
(如不带axis则代表所有元素)
最终返回一个一维数组

import numpy as np
a = np.arange(6).reshape(2,3)
print(a)
print(np.max(a,axis=0)) # 计算每一列最大的值
print(np.max(a,axis=1)) # 计算每一行最大的值
print(np.min(a,axis=0)) # 计算每一列最小的值
print(np.min(a,axis=1)) # 计算每一行最小的值
print(np.mean(a,axis=0)) # 计算每一列的平均值(float)
print(np.mean(a,axis=1)) # 计算每一行的平均值(float)
print(np.sum(a,axis=0)) # 计算每一列的和
print(np.sum(a,axis=1)) # 计算每一行的和

[[0 1 2]
 [3 4 5]]
[3 4 5]
[2 5]
[0 1 2]
[0 3]
[1.5 2.5 3.5]
[1. 4.]
[3 5 7]
[ 3 12]

?数组数据排序

a为一个shape(m,n)的二维数组,排序规则如下:

import numpy as np
a = np.random.randint(0,5,(2,5))
print(a)
print(np.sort(a,axis=0))    # 按列升序排序
print(np.sort(a,axis=1))    # 按行升序排序
print(np.sort(a))   # 默认axis=1,按行升序排序

[[0 4 0 0 4]
 [0 3 3 4 0]]
[[0 3 0 0 0]
 [0 4 3 4 4]]
[[0 0 0 4 4]
 [0 0 3 3 4]]
[[0 0 0 4 4]
 [0 0 3 3 4]]

?数组CSV存储

np.savetxt('文件名',数组,delimiter=',')
以,分隔数组存储为文件名的csv格式文件

np.loadtxt('文件名',delimiter=',',dtype=np.int)
以,分隔读取文件导出数组类型为int的数组

import numpy as np
a = np.arange(12).reshape(3,4)
print(a)
np.savetxt('data.csv',a,delimiter=',')
b = np.loadtxt('data.csv',delimiter=',',dtype=np.int)
print(b)

[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]

?数组增加

a是形状为shape(m,n)的数组:

如果b是shape(k,n)形状,那么np.append(a,b,axi=0)代表数组b将数组b的每一列元素
添加到数组a对应列的最后依次排列,返回一个shape(m+k,n)的数组
import numpy as np
a = np.arange(10).reshape(2,5)
b = np.arange(15).reshape(3,5)
print(a)
print(b)
c = np.append(a,b,axis=0) # 将数组b的每一列元素添加到数组a对应列的最后依次排列
print(c)

[[0 1 2 3 4]
 [5 6 7 8 9]]
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]]
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]]

a是形状为shape(m,n)的数组:

如果b是shape(m,k)形状,那么np.append(a,b,axi=1)代表将数组b的每一行元素
添加到数组对应行的最后依次排列,返回一个shape(m,n+k)的数组
a = np.arange(10).reshape(2,5)
b = np.arange(14).reshape(2,7)
print(a)
print(b)
c = np.append(a,b,axis=1)   # 将数组b的每一行元素添加到数组对应行的最后依次排列
print(c)

[[0 1 2 3 4]
 [5 6 7 8 9]]
[[ 0  1  2  3  4  5  6]
 [ 7  8  9 10 11 12 13]]
[[ 0  1  2  3  4  0  1  2  3  4  5  6]
 [ 5  6  7  8  9  7  8  9 10 11 12 13]]

数组删除?

np.delete(a,slice,axis=0)按行删除slice切片的元素并返回一个数组
np.delete(a,slice,axis=1)按列删除slice切片的元素并返回一个数组

import numpy as np
a = np.arange(12).reshape(3,4)
print(a)
b = np.delete(a,0,axis=0)   # 删除数组a第0行
print(b)
c = np.delete(a,0,axis=1)   # 删除数组a第0列
print(c)

[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
[[ 4  5  6  7]
 [ 8  9 10 11]]
[[ 1  2  3]
 [ 5  6  7]
 [ 9 10 11]]

?特殊值?

np.nan特殊值类似于NULL(数组类型需要为float)

import numpy as np
a = np.arange(15)
a = a.reshape(3,5)
a = a.astype(float)
a[0,0] = np.nan
a[2,3] = np.nan
print(a)
np.isnan(a)    判断数组a元素是否为nan,返回一个bool类型的数组

[[nan  1.  2.  3.  4.]
 [ 5.  6.  7.  8.  9.]
 [10. 11. 12. nan 14.]]

inf特殊值是一个无限大的数
np.isinf(a)    判断数组a元素是否为inf,返回一个bool类型的数组

特殊选取

a[b]选取b为True的元素

import numpy as np
a = np.random.random((3,5))
print(a)
b = a > 0.5
print(b)
a[b] = 0
print(a)

[[0.08432831 0.54384918 0.08748855 0.16821039 0.05190842]
 [0.50787147 0.53117094 0.81952622 0.84543089 0.87711453]
 [0.86997402 0.2631162  0.82484525 0.61112315 0.34068113]]
[[False  True False False False]
 [ True  True  True  True  True]
 [ True False  True  True False]]
[[0.08432831 0.         0.08748855 0.16821039 0.05190842]
 [0.         0.         0.         0.         0.        ]
 [0.         0.2631162  0.         0.         0.34068113]]

集成函数

numpy集成了很多函数一般规则是np.fun()并返回一个数组,其中fun是定义的一个函数

np.sqrt(a)    对数组a所有元素开平方
np.sin(a)    对数组a所有元素求sin(使用的元素是弧度)
数组可以和常数进行大小运算    对数组所有元素和常数比较,返回一个bool类型的数组
两个形状相同的数组可以进行大小运算    数组相对应元素进行比较,返回一个bool类型的数组
a.max()    求数组a所有元素的最大值
a = a * a    求a数组内所有数据的平方

...

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-11-19 17:49:20  更:2021-11-19 17:50:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/24 1:04:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计