7个罕见的Numpy函数!
7个罕见的Numpy函数!
本文介绍的是numpy中少见但是非常实用的7个函数。
In [1]:
import pandas as pd
import numpy as np
np.where()
功能和TensorFlow中的where函数相同,下面介绍用法
In [2]:
m = np.arange(0,15,2)
m
Out[2]:
array([ 0, 2, 4, 6, 8, 10, 12, 14])
In [3]:
# 情形1
np.where(m, 1, -1)
Out[3]:
array([-1, 1, 1, 1, 1, 1, 1, 1])
上面结果中如何m为真则输出1,否则输出-1。在m的取值中0代表的就是False,其他的为True。
In [4]:
# 情形2
np.where(m>=2,1,-1)
Out[4]:
array([-1, 1, 1, 1, 1, 1, 1, 1])
判断条件是m大于等于2,则输出1;否则输出-1
In [5]:
# 情形3
np.where(m>=2)
Out[5]:
(array([1, 2, 3, 4, 5, 6, 7]),)
当执行完条件后面没有规定输出的内容,直接输出满足要求数据的索引值
In [6]:
m[np.where(m>=2)]
Out[6]:
array([ 2, 4, 6, 8, 10, 12, 14])
np.random.RandomState.rand(维度)
返回[0,1)之间的随机数
In [7]:
rdm = np.random.RandomState(seed=1)
In [8]:
rdm.rand() # 返回单个0-1之间的数值
Out[8]:
0.417022004702574
如果不指定维度,就是返回0到1之间的某个数值
In [9]:
rdm.rand(2,3) # 指定维度 3*2
Out[9]:
array([[7.20324493e-01, 1.14374817e-04, 3.02332573e-01],
[1.46755891e-01, 9.23385948e-02, 1.86260211e-01]])
In [10]:
rdm.rand(4,3) # 4*3
Out[10]:
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()
将两个数值按垂直方向叠加
np.vstack(array1, array2)
In [11]:
array1 = np.array([1,2,3])
array2 = np.array([2,3,4])
In [12]:
np.vstack([array1,array2])
Out[12]:
array([[1, 2, 3],
[2, 3, 4]])
In [13]:
array3 = np.array([[1,2,3],
[4,5,6]
])
array4 = np.array([[5,6,7],
[8,9,10]
])
In [14]:
np.vstack([array3,array4])
Out[14]:
array([[ 1, 2, 3],
[ 4, 5, 6],
[ 5, 6, 7],
[ 8, 9, 10]])
np.mgrid()
np.mgrid[起始值:结束值:步长, 起始值:结束值:步长]
In [15]:
import numpy as np
In [16]:
x,y = np.mgrid[1:4:1, 2:4:0.5]
In [17]:
x
Out[17]:
array([[1., 1., 1., 1.],
[2., 2., 2., 2.],
[3., 3., 3., 3.]])
In [18]:
y
Out[18]:
array([[2. , 2.5, 3. , 3.5],
[2. , 2.5, 3. , 3.5],
[2. , 2.5, 3. , 3.5]])
.ravel()
将多维数组拉直成为一维
In [19]:
x.ravel()
Out[19]:
array([1., 1., 1., 1., 2., 2., 2., 2., 3., 3., 3., 3.])
In [20]:
y.ravel()
Out[20]:
array([2. , 2.5, 3. , 3.5, 2. , 2.5, 3. , 3.5, 2. , 2.5, 3. , 3.5])
.flatten()
和上面的ravel效果相同
In [21]:
x.flatten()
Out[21]:
array([1., 1., 1., 1., 2., 2., 2., 2., 3., 3., 3., 3.])
In [22]:
y.flatten()
Out[22]:
array([2. , 2.5, 3. , 3.5, 2. , 2.5, 3. , 3.5, 2. , 2.5, 3. , 3.5])
np.c_
将数值之间的值进行配对
In [23]:
np.c_[x.ravel(), y.ravel()]
Out[23]:
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]])
题外话
感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。
👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python兼职渠道推荐*
学的同时助你创收,每天花1-2小时兼职,轻松稿定生活费.
三、最新Python学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)
若有侵权,请联系删除