首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数据可视化入门

" 本文字数:1016 字 || 阅读时间:3 分钟 " NumPy 导入方式: import numpy as np 高性能科学计算和数据分析的基础包 ndarray,多维数组(矩阵),具有矢量运算能力...,快速、节省空间 矩阵运算,无需循环,可完成类似Matlab中的矢量运算 线性代数、随机数生成 ndarray,N维数组对象(矩阵) 所有元素必须是相同类型 ndim属性,维度个数 shape...数据类型 dtype, 类型名+位数,如 float64, int32 转换数组类型 - astype 矢量化 矢量运算,相同大小的数组键间的运算应用在元素上 矢量和标量运算,“广播”— 将标量...“广播”到各个元素 索引与切片 一维数组的索引与Python的列表索引功能相似 多维数组的索引 arr[r1:r2, c1:c2] arr[1,1] 等价 arr[1][1]...条件索引 布尔值多维数组 arr[condition] condition可以是多个条件组合 注意,多个条件组合要使用 & |,而不是and or ?

1.5K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Numpy 简介

    矢量化描述了代码中没有任何显式的循环、索引等这些事情,当然,只是在优化的、预编译的C代码中“幕后”发生了这些事情。...矢量化代码有许多优点,其中包括: 矢量化代码更简洁,更易于阅读 更少的代码行通常意味着更少的错误 代码更接近于标准的数学符号(更通俗易懂、更容易、正确的编码常规数学结构) 矢量化导致更多“Pythonic...Numpy 数组 NumPy提供了一个N维数组的类型,即ndarray,它描述了相同类型的“items”的集合。 可以使用例如整数的N来索引项目(items)。...从数组中提取的项(例如,通过索引)由Python对象表示,其类型是在NumPy中构建的阵列标量类型之一。 阵列标量允许容易地操纵更复杂的数据排列。 ?...image.png NumPy的主要对象是同类型的多维数组。它是一张表,所有元素(通常是数字)的类型都相同,并通过正整数元组索引。在NumPy中,维度称为轴。轴的数目为rank。

    4.7K20

    NumPy知识速记

    布尔型索引选取数组中的数据,将总是创建数据的副本,即使返回一模一样的数组也是如此。 花式索引 花式索引(Fancy indexing)是一个NumPy术语,它指的是利用整数数组进行索引。...,它总是将数据复制到新数组中。...sum经常被用来对布尔型数组中的True值计数: (arr > 0).sum() arrs.any() 测试数组中是否存在一个或多个True arrs.all() 检查数组中所有值是否都是...np.unique :返回数组中的唯一值以及已排序的结果 np.in1d :测试一个数组中的值在另一个数组中的成员资格(是否存在),返回一个布尔型数组 常用集合函数 用于数组的文件输入输出...np.save :np.save('some_array', arr) np.load :np.load('some_array.npy') np.savez可以将多个数组保存到一个未压缩文件中,将数组以关键字参数的形式传入即可

    1.1K10

    NumPy之:NumPy简介教程

    NumPy库主要包含多维数组和矩阵数据结构。 它为ndarray(一个n维数组对象)提供了对其进行有效操作的方法。 NumPy可以用于对数组执行各种数学运算。...2操作,可以看到,使用NumPy的效率是Python的几十倍,如果在大型数据项目中这个效率会造成非常大的性能影响。...C表示按照C的index方式进行排序,F表示按照Fortran的index方式进行排序。A表示自动选择。 在Fortran中,当移动存储在内存中的二维数组的元素时,第一个索引是变化最快的索引。...当第一个索引更改时移动到下一行时,矩阵一次存储一列。另一方面,在C中,最后一个索引变化最快。...欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!

    2.1K41

    NumPy 获取唯一元素、出现次数、展平数组

    你好 ,我是 zhenguo 本篇文章介绍2个 NumPy 高频使用场景,以及对应的API及用法,欢迎学习。 1 如何获得唯一元素和出现次数 使用np.unique可以很容易地找到数组中唯一的元素。...打印数组中的唯一值: >>> unique_values = np.unique(a) >>> print(unique_values) [11 12 13 14 15 16 17 18 19 20]...要获取NumPy数组中唯一值的索引(数组中唯一值的第一个索引位置的数组),只需在np.unique()中传递return_index参数: >>> unique_values, indices_list...= np.unique(a, return_index=True) >>> print(indices_list) [ 0 2 3 4 5 6 7 12 13 14] 可以将np.unique...()中的return_counts参数与数组一起传递,以获取NumPy数组中唯一值的频率计数。

    2.3K20

    NumPy之:NumPy简介教程

    NumPy库主要包含多维数组和矩阵数据结构。它为ndarray(一个n维数组对象)提供了对其进行有效操作的方法。NumPy可以用于对数组执行各种数学运算。...2操作,可以看到,使用NumPy的效率是Python的几十倍,如果在大型数据项目中这个效率会造成非常大的性能影响。...[4, 5, 6, 7]]]) >>> array_example.ndim 3 ndarray.size 用来统计数组中的元素个数: >>>...C表示按照C的index方式进行排序,F表示按照Fortran的index方式进行排序。A表示自动选择。 在Fortran中,当移动存储在内存中的二维数组的元素时,第一个索引是变化最快的索引。...当第一个索引更改时移动到下一行时,矩阵一次存储一列。另一方面,在C中,最后一个索引变化最快。

    1.4K10

    《利用Python进行数据分析·第2版》第4章 NumPy基础:数组和矢量计算4.1 NumPy的ndarray:一种多维数组对象4.2 通用函数:快速的元素级数组函数4.3 利用数组进行数据处理4.

    你可以传入一个以逗号隔开的索引列表来选取单个元素。...图4-1 NumPy数组中的元素索引 在多维数组中,如果省略了后面的索引,则返回对象会是一个维度低一点的ndarray(它含有高一级维度上的所有数据)。...一般来说,矢量化数组运算要比等价的纯Python方式快上一两个数量级(甚至更多),尤其是各种数值计算。在后面内容中(见附录A)我将介绍广播,这是一种针对矢量化计算的强大手段。...在数据分析工作中,where通常用于根据另一个数组而产生一个新的数组。假设有一个由随机数据组成的矩阵,你希望将所有正值替换为2,将所有负值替换为-2。...8, 9]) 通过np.savez可以将多个数组保存到一个未压缩文件中,将数组以关键字参数的形式传入即可: In [216]: np.savez('array_archive.npz', a=arr,

    4.9K80

    NumPy之:NumPy简介教程

    NumPy库主要包含多维数组和矩阵数据结构。 它为ndarray(一个n维数组对象)提供了对其进行有效操作的方法。 NumPy可以用于对数组执行各种数学运算。...2操作,可以看到,使用NumPy的效率是Python的几十倍,如果在大型数据项目中这个效率会造成非常大的性能影响。...[4, 5, 6, 7]]]) >>> array_example.ndim 3 ndarray.size 用来统计数组中的元素个数: >>> array_example.size...C表示按照C的index方式进行排序,F表示按照Fortran的index方式进行排序。A表示自动选择。 在Fortran中,当移动存储在内存中的二维数组的元素时,第一个索引是变化最快的索引。...当第一个索引更改时移动到下一行时,矩阵一次存储一列。另一方面,在C中,最后一个索引变化最快。

    1.2K30

    NumPy 1.26 中文官方指南(二)

    如何获取唯一项和计数 本节包括 np.unique() 你可以通过np.unique轻松找到数组中的唯一元素。...4 5 6 7 12 13 14] 你可以在np.unique()中传递return_counts参数以及你的数组来获得 NumPy 数组中唯一值的频率计数。...对于一个四列数组,你将获得四个值作为结果。 阅读更多关于数组方法的信息。 创建矩阵 你可以传递 Python 的列表列表来创建一个代表它们的 2-D 数组(或“矩阵”)在 NumPy 中表示。...如何获取唯一项和计数 本节介绍 np.unique() 你可以使用np.unique轻松找到数组中的唯一元素。...4 5 6 7 12 13 14] 你可以在np.unique()中传递return_counts参数和数组一起,以获取 NumPy 数组中唯一值的频次计数。

    35410

    NumPy之:NumPy简介教程

    NumPy库主要包含多维数组和矩阵数据结构。 它为ndarray(一个n维数组对象)提供了对其进行有效操作的方法。 NumPy可以用于对数组执行各种数学运算。...2操作,可以看到,使用NumPy的效率是Python的几十倍,如果在大型数据项目中这个效率会造成非常大的性能影响。...[4, 5, 6, 7]]]) 复制代码 >>> array_example.ndim 3 复制代码 ndarray.size 用来统计数组中的元素个数...C表示按照C的index方式进行排序,F表示按照Fortran的index方式进行排序。A表示自动选择。 在Fortran中,当移动存储在内存中的二维数组的元素时,第一个索引是变化最快的索引。...当第一个索引更改时移动到下一行时,矩阵一次存储一列。另一方面,在C中,最后一个索引变化最快。

    78930

    Numpy基础操作学习笔记

    #数组的矩阵积(matrix product) #数组的索引与切片 #数组转置与轴对换 #通用函数:快速的元素级数组函数 #聚合函数 #np.where函数 #np.unique函数 #-------...(matrix product)-------- #两个二维矩阵(多维数组即矩阵)满足第一个矩阵的列数与第二个矩阵的行数相同,那么可以进行矩阵乘法,即矩阵积,矩阵积不是元素级的运算 #两个矩阵相乘结果所得到的的数组中每个元素为...----------- #多维数组的索引 #NumPy中数组的切片 #布尔型索引 #花式索引 #获取Narray数组切片 a=np.array([ [ [1,2],...值,即大于等于该值的最小整数 #floor 计算各元素的floor值,即小于等于该值的最大整数 #rint 将各元素值四舍五入到最接近的整数,保留dtype #modf 将数组的小数位和整数部分以两个独立数组的形式返回...(a)) #['桔子' '橘子' '苹果' '香蕉'] for b in np.unique(a): print(b) #数组数据文件读写 #将数组以二进制格式保存到磁盘 a=np.arange

    64330

    python的numpy入门简介

    floor 计算各元素的floor值,即小于等于该值的最小整数。 rint 将各元素值四舍五入到最接近的整数,保留dtype。 modf 将数组的小数部分与整数部分以两个独立数组的形式返还。...NumPy的ndarray 快速的元素级数组函数 • 二元函数 I 类型 说明 add 将数组中对应的元素相加 subtract 从第一个数组中减去第二个数组中的元素 multiply 数组元素相乘 divide...mod 元素级的求模计算 • 例子代码: universal_functions.py 类型 说明 copysign 将第二个数组中的符号复制给第一个数组中的值 greater, greater_equal...数组文件的输入输出 • 将数组以二进制格式保存到磁盘 • 存取文本文件 读取csv文件做为数组  arr = np.loadtxt('array.txt', delimiter = ',') #arr...函数  diag 以一维数组的形式返回方阵的对角线(或非对角线元素),获将一维数组转换 为方阵(非对角线元素为0)。

    1.4K30

    Python 数据处理:NumPy库

    你可以传入一个以逗号隔开的索引列表来选取单个元素。...print(arr2d[0,2]) 二维数组的索引方式,轴0作为行,轴1作为列: 在多维数组中,如果省略了后面的索引,则返回对象会是一个维度低一点的ndarray(它含有高一级维度上的所有数据...假设有一个由随机数据组成的矩阵,你希望将所有正值替换为2,将所有负值替换为-2。...arr) print(np.load('some_array.npy')) 通过np.savez可以将多个数组保存到一个未压缩文件中,将数组以关键字参数的形式传入即可: import numpy...: 函数 描述 diag 以一维数组的形式返回方阵的对角线(或非对角线)元素,或将一维数组转换为方阵(非对角线元素为O) dot 矩阵乘法 trace 计算对角线元素的和 det 计算矩阵行列式 eig

    5.7K11

    如果不懂Numpy,请别说自己是Python程序员

    最终,我把顶点数量删减到两万左右,以兼顾模型质量和响应速度,才勉强交付了这个任务。从此我开始怀疑 python 的性能,甚至一度怀疑 python 是否还是我的首选工具。...矢量化可以理解为代码中没有显式的循环、索引等,广播可以理解为隐式地对每个元素实施操作。矢量化和广播理解起来有点抽象,我们还是举个栗子来说明一下吧。...总结: 矢量化代码更简洁,更易于阅读 更少的代码行通常意味着更少的错误 代码更接近于标准的数学符号 矢量化代码更 pythonic 2. dtype AND shape 子曰:找对象先了解品行,学对象先了解属性...array([15, 19, 23]) 提示:对多维数组切片或索引得到的结果,维度不是确定的。...(a) [3] 返回数组中满足给定条件的元素的索引 numpy.where(condition[, x, y]) 应用示例: >>> a = np.arange(10) >>> a array([0,

    1.9K00

    数据分析之numpy

    数组 + 数组 对应元素相加 数组 + 数字 分别相加,相乘,相除 一维 + 多维 按行分别相加 每行的元素个数相同 多维 + 多维 对应元素分别相加 多维 * 多维 形状相同对应元素分别相乘...):将数组的小数和整数部分以两个独立数组的形式返回,参数是 number 或 ndarray isnan(x): 判断元素是否为 NaN(Not a Number),返回bool,参数是 number..., axis]):最大值的下标索引值,参数是 number 或 ndarray np.argmin(x [, axis]):最小值的下标索引值,参数是 number 或 ndarray np.cumsum...函数 三目运算符 如果符合条件 结果为值1 否则为值2 将结果添加到数组中 使用格式为: result = np.where(条件, 值1, 值2) 元素替换 # 将大于20的元素替换成666...np.where(ndarray3 < 17, 100, ndarray3), ndarray3) 按条件筛选元素 矩阵名[矩阵名>数值] 对矩阵元素进行筛选,以列表形似返回符合条件的元素 newArr

    1.3K10

    numpy科学计算包的使用2

    利用数组进行数据处理 NumPy数组使你可以将许多种数据处理任务表述为简洁的数组表达式(否则需要编写循环)。用数组表达式代替循环的做法,通常被称为矢量化。...矢量化数组运算要比等价的纯Python方式快上一两个数量级 利用数组进行数据处理 将条件逻辑表述为数组运算 传统方式缺点: 列表推导的局限性 纯Python代码,速度不够快。...sum对True值计数 any和all测试布尔型数组,对于非布尔型数组,所有非0元素将会被当做True import numpy as np import numpy.random as np_random...(names)) ints = np.array([3, 3, 3, 2, 2, 1, 1, 4, 4]) print(np.unique(ints)) print('查找数组元素是否在另一数组')...values = np.array([6, 0, 0, 3, 2, 5, 6]) print(np.in1d(values, [2, 3, 6])) 数组文件的输入输出 将数组以二进制格式保存到磁盘

    1.8K120

    numpy总结

    numpy的功能: 提供数组的矢量化操作,所谓矢量化就是不用循环就能将运算符应用到数组中的每个元素中。...numpy.concatenate((A,B,B,A),axis=0)也是合并矩阵,axis=0表示垂直合并,- axis=1表示水平合并 numpy.dstack(())深度组合,将互不相干的...()取到数组中位数 numpy.msort()排序数组 numpy.var()统计数组的方差 numpy.diff()返回数组相邻值的差值组成的数组 numpy.log(...np.linalg.pinv()求解广义逆矩阵 np.linalg.det(A)计算矩阵的行列式 np.linalg.fftshift()FFT输出中的直流分量移动到频谱的中央...np.assert_array_less()比较一个数组每个元素是否大于另一个数组的对应索引的每个元素,抛出异常 numpy中要注意的几个地方: 切片不会复制原数组,而是生成原数组的视图

    1.6K20

    牛!NumPy团队发了篇Nature

    0 首先要知道Numpy是啥文献摘要 数组编程为访问和操作矢量、矩阵和高维数组中的数据提供了强大的语法。 NumPy是Python语言的主要数组编程库。...Strides是将线性存储元素的计算机内存解释为多维数组所必需的,描述了在内存中向前移动的字节数,以便从行跳到行,从列跳到列等等。...索引数组将返回满足特定条件的单个元素、子数组或元素(b)。 数组甚至可以使用其他数组进行索引(c)。只要有可能,检索子数组的索引就会返回原始数组的“视图”,以便在两个数组之间共享数据。...一个例子是向数组添加标量值,但是广播也可以推广到更复杂的例子,比如缩放数组的每一列或生成坐标网格。在广播中,一个或两个数组被虚拟复制(即不复制存储器中的任何数据),使得操作数的形状匹配(d)。...在过去的几年里,该项目吸引了它的第一个资助开发,由摩尔和斯隆基金会赞助,并作为陈-扎克伯格倡议的开源软件要点计划的一部分获得了一个奖项。

    1.8K21
    领券