机器之心之NumPy能力大评测:这里有70道测试题代码实现和函数解释31-35
2018-03-21 22:25
501 查看
如何找到 NumPy 数组的百分数?percentile scores
如何在数组的随机位置插入值?
如何在 NumPy 数组中找出缺失值的位置?
如何基于两个或以上条件过滤 NumPy 数组?
过滤 iris_2d 中满足 petallength(第三列)> 1.5 和 sepallength(第一列)< 5.0 的行。
如何在 NumPy 数组中删除包含缺失值的行?选择 iris_2d 中不包含 nan 值的行。
import numpy as np url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data' sepallength = np.genfromtxt(url, delimiter=',', dtype='float', usecols=[0]) xmy = np.percentile(sepallength, q=[5, 95]) print(xmy) [ 4.6 7.255] numpy.percentile(a, q, axis) 1. a 输入数组 2. q 要计算的百分位数,在 0 ~ 100 之间 3. axis 沿着它计算百分位数的轴 ,二维取值0,1
如何在数组的随机位置插入值?
import numpy as np url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data' iris_2d = np.genfromtxt(url, delimiter=',', dtype='object') i,j= np.where(iris_2d) np.random.seed(100) iris_2d[np.random.choice((i), 20), np.random.choice((j), 20)] = np.nan print(iris_2d) [b'5.4' b'3.7' b'1.5' nan b'Iris-setosa'] 第一种用法 np.where(conditions,x,y) if (condituons成立): 数组变x else: 数组变y 第二种用法 where(conditions) 相当于给出数组的下标 iris_2d[np.random.choice((i), 20), np.random.choice((j), 20)] 可以从一个int数字或1维array里随机选取内容,并将选取结果放入n维array中返回。 choice(a[, size, replace, p])-->从一维数组a中以概率p抽取抽取元素,形成size形状新的数组,replace表示是否可以重用元素,默认为True,第二个参数表示选几个default是1个返回数字, np.nan NaN(not a number),在数学表示上表示一个无法表示的数 np.random.seed(100) iris_2d[np.random.randint(150, size=20), np.random.randint(4, size=20)] = np.nan # Print first 10 rows print(iris_2d[:10]) numpy.random.randint 生成在半开半闭区间[low,high)上离散均匀分布的整数值;若high=None,则取值区间变为[0,low) low、high、size三个参数。默认high是None,如果只有low,那范围就是[0,low)。如果有high,范围就是[low,high)。 1、获取下标 2、随机选20对下标 3、对20对下标赋数值
如何在 NumPy 数组中找出缺失值的位置?
import numpy as np url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data' iris_2d = np.genfromtxt(url, delimiter=',', dtype='float', usecols=[0,1,2,3]) iris_2d[np.random.randint(150, size=20), np.random.randint(4, size=20)] = np.nan print("Number of missing values: \n", np.isnan(iris_2d[:, :]).sum()) print("Position of missing values: \n", np.where(np.isnan(iris_2d[:, :]))) Number of missing values: 20 Position of missing values: (array([ 0, 8, 20, 34, 44, 57, 66, 67, 73, 90, 92, 93, 94,119, 127, 133, 138, 140, 144, 146]), array([2, 0, 2, 2, 0, 0, 2, 2, 0, 2, 0, 3, 3, 1, 1, 3, 1, 1, 2, 2]))
如何基于两个或以上条件过滤 NumPy 数组?
过滤 iris_2d 中满足 petallength(第三列)> 1.5 和 sepallength(第一列)< 5.0 的行。
import numpy as np url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data' iris_2d = np.genfromtxt(url, delimiter=',', dtype='float', usecols=[0,1,2,3]) condition = (iris_2d[:, 2] > 1.5) & (iris_2d[:, 0] < 5.0) print(iris_2d[condition]) [[ 4.8 3.4 1.6 0.2] [ 4.8 3.4 1.9 0.2] [ 4.7 3.2 1.6 0.2] [ 4.8 3.1 1.6 0.2] [ 4.9 2.4 3.3 1. ] [ 4.9 2.5 4.5 1.7]]
如何在 NumPy 数组中删除包含缺失值的行?选择 iris_2d 中不包含 nan 值的行。
import numpy as np url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data' iris_2d = np.genfromtxt(url, delimiter=',', dtype='float', usecols=[0,1,2,3]) iris_2d[np.random.randint(150, size=20), np.random.randint(4, size=20)] = np.nan any_nan_in_row = np.array([~np.any(np.isnan(row)) for row in iris_2d]) iris_2d[any_nan_in_row][:5] print(iris_2d[any_nan_in_row][:5]) iris_2d[np.sum(np.isnan(iris_2d), axis = 1) == 0][:5] print(np.isnan(iris_2d))
相关文章推荐
- NumPy能力大评估:70道测试题
- NumPy 数学函数及代数运算的实现代码
- c#调用js,以及js调用C#里的函数, c#自己生成js代码,实现对web的控制
- 1、使用javascript代码写出一个函数:实现传入两个整数后弹出较大的整数
- strstr()函数c++代码实现实例及运行结果
- OpenCV代码提取:flip函数的实现
- Numpy随机数生成函数与常见分布函数解释
- js实现tab选项卡函数代码
- R语言实现SOM(自组织映射)模型(三个函数包+代码)
- C语言字符串库函数的实现也是笔试题常考的题目,以下代码没有严格测试,只是简单的实现:
- OpenCV代码提取:remap函数的实现
- php实现快速排序法函数代码
- 简单扩展winform中的ListBox,实现项闪烁、项变色,和代码拉动滚动条(新手村真是冷,斗胆放在这里,如果不合适,立马撤下)
- 一行代码设置TForm颜色的前世今生(属性赋值引起函数调用,然后发消息实现改变显示效果),TForm的初始颜色在dfm中设置了clBtnFace色
- 数据结构 - 线性表(顺序表)C语言代码实现-处理整型数据(附详细解释)。 _清风明月
- 6-6 求单链表结点的阶乘和(15 分) 本题要求实现一个函数,求单链表L结点的阶乘和。这里默认所有结点的值非负,且题目保证结果在int范围内。
- WordPress开发中短代码的实现及相关函数使用技巧
- matlab中padarray函数在numpy、python中的实现
- malloc与free函数的实现代码
- javascript实现的像java、c#之类的sleep暂停的函数代码