axis

numpy.argsort详解

怎甘沉沦 提交于 2020-01-21 02:14:20
numpy.argsort 用例: numpy.argsort (a, axis=-1, kind=None, order=None) 功能: 返回数组排序后的元素索引值。 根据 kind 指定的算法对数组沿着 axis 轴进行排序。其返回值的形状和 a 一致,返回值内容为排序后元素在原始数组中的索引。 参数 变量名 数据类型 功能 a 数组型变量 被排序的数组。 axis 整型或None,可选参数 指定沿着哪个轴排序。默认值是-1即最后一维。若为None,则会将数组拉伸为一维。 kind {‘quicksort’, ‘mergesort’, ‘heapsort’, ‘stable’}, 可选参数 排序算法,默认为’quicksort’。注意:'stable’和’mergesort’的后端都是使用 timsort 算法,并且在通常情况下, 算法的计算结果会随数值类型的不同而发生改变。保留’mergesort’参数是为了向后兼容。 order 字符串、字符串组成的列表,可选参数 当数组a定义了字段时,此参数指定先比较哪个字段再比较哪个字段。通过字符串可以单一指定某个字段, 并且并不是所有字段均需被指定,未被指定的字段也会参与排序(按照他们在 dtype 中的出现顺序进行排序)。 返回值 变量名 数据类型 功能 index_array n维数组或整数

NumPy统计函数

懵懂的女人 提交于 2020-01-21 00:21:31
numpy.amin()和numpy.amax() numpy.amin()用于计算数组中元素沿着指定轴的最小值。 numpy.amax()用于计算数组中元素沿着指定轴的最大值 a=np.array([1,3,6],[3,4,11],[6,1,4]) print(np.amin(a,1) #每行最小值 print(np.amin(a,0) #每列最小值 print(np.amax(a) #所有元素中最大值 print(np.amax(a,1)) #j每行的最大值 结果: [1 3 1] [1 1 4] 11 [ 6 11 6] ** numpy.ptp() 用来计算数组中元素的最大值与最小值的差(最大值-最小值)。 numpy.percentile()** 表示百分比 numpy.percentile(a,q,axis) a:输入数组 q:要计算的百分位数 axis:沿着它计算百分位数的轴 对于一个数组,我们设置它的百分位数为20,则我们可以推算出在该数组排序中在百分之20上的值是多少,例如: # percentail百分数 a = np.array([[21, 60, 4], [10, 20, 1]]) print('数组a:') print(a) print('调用 percentile() 函数:') # 50% 的分位数,就是 a 里排序之后的中位数 print(np

Numpy学习50例

拥有回忆 提交于 2020-01-20 14:58:37
基础部分 1、导入numpy模块 import numpy as np 2、查看numpy版本信息 print(np.__version__) numpy的主要对象的多维数组Ndarray。Numpy中维度(dimensions)叫做轴(axis),轴的个数叫做秩。 3、通过列表创建一位数组 np.array([1, 2, 3]) 4、通过列表创建一个二维数组 np.array([(1, 2, 3),(4, 5, 6)]) 5、创建全为0的二维数组 np.zeros((3,3)) 6、创建全为1的三维数组 np.ones((2,3,4)) 7、创建一维等差数组 np.arange(5) 8、创建二维等差数组 np.arange(6).reshape(2,3) 9、创建二维单位矩阵 np.eye(3) 10、创建等间隔一维数组(1到10之间,共6个数,数字之间间隔相同) np.linspace(1, 10, num=6) 11、创建二维随机数组 np.random.rand(2,3) 下面说明一下random模块中的一些常用函数的用法 numpy.random.rand(d0, d1, ..., dn):生成一个[0,1)之间的随机浮点数或N维浮点数组。 numpy.random.randn(d0, d1, ..., dn):生成一个浮点数或N维浮点数组,取数范围

numpy

妖精的绣舞 提交于 2020-01-20 00:14:51
参考学习文献: https://www.numpy.org.cn/article/basics/python_numpy_tutorial.html https://www.machinelearningplus.com/python/101-numpy-exercises-python/ 1.什么是Numpy? NumPy是Python中科学计算的基础软件包。 Numpy提供多维数组对象,多种派生对象(如:掩码数组、矩阵)以及用于快速操作数组的函数及API, Numpy包括数学、逻辑、数组形状变换、排序、选择、I/O 、离散傅立叶变换、基本线性代数、基本统计运算、随机模拟等。 NumPy包的核心是ndarray对象。 2.数组对象ndarray Numpy的数组类被称为ndarray,别名为 array。 Numpy的数组中所有元素类型都相同,并通过正整数元组索引。 Numpy中,维度称为轴。轴的数目为rank。 3.创建ndarray数组 1)基于 list 或 tuple # 基 于 list arr1 = np.array([1,2,3,4]) print(arr1) # 基 于 tuple arr_tuple = np.array((1,2,3,4)) print(arr_tuple) 在创建二维数组时,在每个子 list 外面还有一个“[]”,形式为“[[list1],

pandas

╄→尐↘猪︶ㄣ 提交于 2020-01-20 00:09:21
1.数据导入与导出 # 数据导入 pd.read_csv(filename) # 导入csv格式文件中的数据 pd.read_table(filename) # 导入有分隔符的文本 (如TSV) 中的数据 pd.read_excel(filename) # 导入Excel格式文件中的数据 pd.read_sql(query, connection_object) # 导入SQL数据表/数据库中的数据 pd.read_json(json_string) # 导入JSON格式的字符,URL地址或者文件中的数据 pd.read_html(url) # 导入经过解析的URL地址中包含的数据框 (DataFrame) 数据 pd.read_clipboard() # 导入系统粘贴板里面的数据 pd.DataFrame(dict) # 导入Python字典 (dict) 里面的数据,其中key是数据框的表头,value是数据框的内容。 # 数据导出 df.to_csv(filename) # 将数据框 (DataFrame)中的数据导入csv格式的文件中 df.to_excel(filename) # 将数据框 (DataFrame)中的数据导入Excel格式的文件中 df.to_sql(table_name,connection_object) # 将数据框 (DataFrame

Python中NumPy(axis=0 与axis=1)

為{幸葍}努か 提交于 2020-01-19 05:51:12
python中的axis究竟是如何定义的呢?他们究竟代表是DataFrame的行还是列?考虑以下代码: >>>df = pd.DataFrame([[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]], \ columns=["col1", "col2", "col3", "col4"]) >>>df col1 col2 col3 col4 0 1 1 1 1 1 2 2 2 2 2 3 3 3 3 如果我们调用df.mean(axis=1),我们将得到按行计算的均值 >>> df.mean(axis=1) 0 1 1 2 2 3 然而,如果我们调用 df.drop((name, axis=1),我们实际上删掉了一列,而不是一行: >>> df.drop("col4", axis=1) col1 col2 col3 0 1 1 1 1 2 2 2 2 3 3 3这里其实很简单,axis=0其实是跨行,而axis=1是跨列我们这里来看看df.mean(axis=1),因为axis=1所以按照上面的说法,就是跨列进行计算,这样跨了3列计算得到了平均值(相当于水平方向上的操作)再仔细来看看 df.drop((name, axis=1),也是跨列进行计算,这里我们利用上面所得到的想法,是水平方向上的操作,这里规定了name,也就是对这一列进行水平方向上的操作

Pandas数据处理三板斧——map、apply、applymap详解

泪湿孤枕 提交于 2020-01-19 03:53:18
公众号:Python读数 如有问题或建议,请公众号留言 在日常的数据处理中,经常会对一个 DataFrame 进行逐行、逐列和逐元素的操作,对应这些操作,Pandas中的 map 、 apply 和 applymap 可以解决绝大部分这样的数据处理需求。这篇文章就以 案例 附带 图解 的方式,为大家详细介绍一下这三个方法的 实现原理 ,相信读完本文后,不论是小白还是Pandas的进阶学习者,都会对这三个方法有更深入的理解。 本文演示的数据集是模拟生成的,想练手的可以按下方的代码生成。 boolean = [ True , False ] gender = [ "男" , "女" ] color = [ "white" , "black" , "yellow" ] data = pd . DataFrame ( { "height" : np . random . randint ( 150 , 190 , 100 ) , "weight" : np . random . randint ( 40 , 90 , 100 ) , "smoker" : [ boolean [ x ] for x in np . random . randint ( 0 , 2 , 100 ) ] , "gender" : [ gender [ x ] for x in np . random .

更改archlinux不识别高分辨率

家住魔仙堡 提交于 2020-01-19 02:04:58
利用 xrandr 命令修改屏幕分辨率 电脑外接着一个 23‘ 的显示器,分辨率为 1920*1080。 操作系统:archlinux 6.5 今天,通过 Setting->Displays 中选择外接屏的分辨率时,发现最大只有 1024×768,并且外接屏显示 “Unknown Displays”,被狗日了。。。。。 解决方案 解决办法主要是给这个 “Unknown Displays” 设置一个 1920*1080 的选项,下面借助 xrandr 命令来实现。 先查看两个屏幕支持的分辨率情况 在终端输入 xrandr: 执行 xrandr Screen 0: minimum 8 x 8, current 1366 x 1536, maximum 32767 x 32767 LVDS1 connected primary 1366x768+0+768 (normal left inverted right x axis y axis) 290mm x 160mm 1366x768 60.02*+ 40.01 1280x720 59.86 60.00 59.74 1024x768 60.00 1024x576 60.00 59.90 59.82 960x540 60.00 59.63 59.82 800x600 60.32 56.25 864x486 60.00 59.92 59

numpy中ndarray中选出若干个元素并输出(ndarray.take())

情到浓时终转凉″ 提交于 2020-01-19 00:34:52
官方文档take用法解释 先随机生成一个矩阵a import numpy as np a = np . random . randint ( 1 , 9 , size = 9 ) . reshape ( ( 3 , 3 ) ) 结果 array ( [ [ 7 , 3 , 2 ] , [ 8 , 7 , 5 ] , [ 3 , 7 , 3 ] ] ) 如果希望提取某个axis的若干切片 ndarray.take(indices,axis) 如,提取a的第一行和第三行 a . take ( [ 0 , 2 ] , axis = 0 ) 输出 array ( [ [ 7 , 3 , 2 ] , [ 3 , 7 , 3 ] ] ) 如果希望提取第一列和第三列,类似地 a . take ( [ 0 , 2 ] , axis = 1 ) 结果 array ( [ [ 7 , 2 ] , [ 8 , 5 ] , [ 3 , 3 ] ] ) 如果没有指定axis a . take ( [ 1 , 2 , 8 ] ) 它会先把a扁平化为一维矩阵 结果 array ( [ 3 , 2 , 3 ] ) 当然indice可以是任意顺序,如我们希望第三行重复两次,再和第一行组合成矩阵 如 a . take ( [ 2 , 2 , 0 ] , axis = 0 ) 结果 array ( [ [ 3 , 7

tensor维度变换

你说的曾经没有我的故事 提交于 2020-01-18 08:37:36
维度变换是tensorflow中的重要模块之一,前面mnist实战模块我们使用了图片数据的压平操作,它就是维度变换的应用之一。 在详解维度变换的方法之前,这里先介绍一下View(视图)的概念。所谓View,简单的可以理解成我们对一个tensor不同维度关系的认识。举个例子,一个[ b,28,28,1 ]的tensor(可以理解为mnist数据集的一组图片),对于这样一组图片,我们可以有一下几种理解方式: (1)按照物理设备储存结构,即一整行的方式(28*28)储存,这一行有连续的784个数据,这种理解方式可以用[ b,28*28 ]表示 (2)按照图片原有结构储存,即保留图片的行列关系,以28行28列的数据理解,这种方式可以用[ b,28,28 ]表示 (3)将图片分块(比如上下两部分),这种理解方式与第二种类似,只是将一张图变为两张,这种方式可以用[ b,2,14*28 ]表示 (4)增加channel通道,这种理解方式也与第二种类似,只是这种对rgb三色图区别更明显,可以用[ b,28 28,1 ]表示 通过维度的等价变换,就可以实现思维上View的转换 维度变换的方式: 方式1:tf.reshape (可通过破坏维度之间的关系改变tensor的维度,但不会改变原有数据的存储顺序) a = tf.random.normal([4,28,28,3]) print(a.shape)