7个罕见的Numpy函数!

7个罕见的Numpy函数!

本文介绍的是numpy中少见但是非常实用的7个函数。

In 1:

javascript 复制代码
import pandas as pd
import numpy as np

np.where()

功能和TensorFlow中的where函数相同,下面介绍用法

In 2:

ini 复制代码
m = np.arange(0,15,2)
m

Out2:

scss 复制代码
array([ 0,  2,  4,  6,  8, 10, 12, 14])

In 3:

csharp 复制代码
# 情形1

np.where(m, 1, -1)

Out3:

scss 复制代码
array([-1,  1,  1,  1,  1,  1,  1,  1])

上面结果中如何m为真则输出1,否则输出-1。在m的取值中0代表的就是False,其他的为True。

In 4:

csharp 复制代码
# 情形2

np.where(m>=2,1,-1)

Out4:

scss 复制代码
array([-1,  1,  1,  1,  1,  1,  1,  1])

判断条件是m大于等于2,则输出1;否则输出-1

In 5:

csharp 复制代码
# 情形3

np.where(m>=2)

Out5:

c 复制代码
(array([1, 2, 3, 4, 5, 6, 7]),)

当执行完条件后面没有规定输出的内容,直接输出满足要求数据的索引值

In 6:

csharp 复制代码
m[np.where(m>=2)]

Out6:

scss 复制代码
array([ 2,  4,  6,  8, 10, 12, 14])

np.random.RandomState.rand(维度)

返回[0,1)之间的随机数

In 7:

ini 复制代码
rdm = np.random.RandomState(seed=1)

In 8:

bash 复制代码
rdm.rand()  # 返回单个0-1之间的数值

Out8:

复制代码
0.417022004702574

如果不指定维度,就是返回0到1之间的某个数值

In 9:

bash 复制代码
rdm.rand(2,3)   # 指定维度 3*2

Out9:

lua 复制代码
array([[7.20324493e-01, 1.14374817e-04, 3.02332573e-01],
       [1.46755891e-01, 9.23385948e-02, 1.86260211e-01]])

In 10:

bash 复制代码
rdm.rand(4,3)  # 4*3

Out10:

lua 复制代码
array([[0.34556073, 0.39676747, 0.53881673],
       [0.41919451, 0.6852195 , 0.20445225],
       [0.87811744, 0.02738759, 0.67046751],
       [0.4173048 , 0.55868983, 0.14038694]])

np.vstack()

将两个数值按垂直方向叠加

python 复制代码
np.vstack(array1, array2)

In 11:

ini 复制代码
array1 = np.array([1,2,3])
array2 = np.array([2,3,4])

In 12:

css 复制代码
np.vstack([array1,array2])

Out12:

lua 复制代码
array([[1, 2, 3],
       [2, 3, 4]])

In 13:

css 复制代码
array3 = np.array([[1,2,3],
                   [4,5,6]
                  ])
array4 = np.array([[5,6,7],
                   [8,9,10]
                  ])

In 14:

css 复制代码
np.vstack([array3,array4])

Out14:

lua 复制代码
array([[ 1,  2,  3],
       [ 4,  5,  6],
       [ 5,  6,  7],
       [ 8,  9, 10]])

np.mgrid()

np.mgrid[起始值:结束值:步长, 起始值:结束值:步长]

In 15:

javascript 复制代码
import numpy as np

In 16:

ini 复制代码
x,y = np.mgrid[1:4:1, 2:4:0.5]

In 17:

复制代码
x

Out17:

lua 复制代码
array([[1., 1., 1., 1.],
       [2., 2., 2., 2.],
       [3., 3., 3., 3.]])

In 18:

复制代码
y

Out18:

lua 复制代码
array([[2. , 2.5, 3. , 3.5],
       [2. , 2.5, 3. , 3.5],
       [2. , 2.5, 3. , 3.5]])

.ravel()

将多维数组拉直成为一维

In 19:

scss 复制代码
x.ravel()

Out19:

scss 复制代码
array([1., 1., 1., 1., 2., 2., 2., 2., 3., 3., 3., 3.])

In 20:

scss 复制代码
y.ravel()

Out20:

scss 复制代码
array([2. , 2.5, 3. , 3.5, 2. , 2.5, 3. , 3.5, 2. , 2.5, 3. , 3.5])

.flatten()

和上面的ravel效果相同

In 21:

scss 复制代码
x.flatten()

Out21:

scss 复制代码
array([1., 1., 1., 1., 2., 2., 2., 2., 3., 3., 3., 3.])

In 22:

scss 复制代码
y.flatten()

Out22:

scss 复制代码
array([2. , 2.5, 3. , 3.5, 2. , 2.5, 3. , 3.5, 2. , 2.5, 3. , 3.5])

np.c_

将数值之间的值进行配对

In 23:

css 复制代码
np.c_[x.ravel(), y.ravel()]

Out23:

css 复制代码
array([[1. , 2. ],
       [1. , 2.5],
       [1. , 3. ],
       [1. , 3.5],
       [2. , 2. ],
       [2. , 2.5],
       [2. , 3. ],
       [2. , 3.5],
       [3. , 2. ],
       [3. , 2.5],
       [3. , 3. ],
       [3. , 3.5]])
相关推荐
AC赳赳老秦2 小时前
OpenClaw+Power Apps 实战:自动生成 Power Apps 应用、连接 Excel 数据源
大数据·开发语言·python·serverless·excel·deepseek·openclaw
茉莉玫瑰花茶4 小时前
综合案例 - AI 智能租房助手 [ 5 ]
服务器·数据库·人工智能·python·ai
文艺倾年4 小时前
【强化学习】强化学习基本概念,20W字总结(一)
人工智能·python·语言模型·自然语言处理·面试·职场和发展·大模型
宸丶一4 小时前
Day 13:持久化记忆 - 让 Agent 拥有长期记忆
jvm·python·ai
码云骑士4 小时前
13-列表append的底层真相(上)-listobject源码中的预分配策略
开发语言·python
浦信仿真大讲堂5 小时前
达索系统SIMULIA Abaqus 2026接触和约束的增强新功能介绍
人工智能·python·算法·仿真软件·达索软件
xufengzhu5 小时前
第三方 Python 库 Loguru 的进阶实战
python·loguru
安逸sgr5 小时前
《图解机器学习-第四章》:损失函数和梯度下降:模型是怎么被训练出来的?
人工智能·机器学习·图解机器学习
极光代码工作室6 小时前
基于深度学习的手写数字识别系统
人工智能·python·深度学习·神经网络·机器学习
geovindu6 小时前
python: speech to text offline
开发语言·python·语音识别