python数组操作

Python数据分析numpy(1)

烂漫一生 提交于 2020-03-16 19:01:12
某厂面试归来,发现自己落伍了!>>> Python开源的科学计算基础库 1.表示N维数组对象ndarray 2.线性代数、傅里叶变换、随机数生成 3.广播函数,整合c++、c 一.数据的维度 1.数据 2.数据维度 3.一维数据 (1)特点 (2)Python中的表达方式 列表、集合类型 (3)列表和数组的区别 数据类型要求不一样 4.二维数据 (1)概念,多个一位数据组成,一个以为数据的组合。 (2)列表 5.多维数据 (1) (2)列表 6.高维数据 (1)仅利用最基本的二元关系展示数据间的复杂关系 (2)字典类型或者数据表示格式 二.numpy库中的N维数组对象ndarray 1.使用numpy数组原因: (1)节省空间 (2)numpy的底层实现靠c语言实现的,提高运行速度。 代码示例: 2.N维数组对象-ndarray (1)组成 实际的数据 描述这些数据的元数据(数据维度、数据类型等) 轴、秩 方法 功能 .ndim 轴 .shape 秩 .size 元素个数 .dtype 数据类型 .itemsize 元素所占的字节 import numpy as np a=np.array([[0,1,2,3,4],[9,8,7,6,5]])# -*- coding: utf-8 -*- print(a.ndim) print(a.shape) print(a.size)

numpy学习(一)

若如初见. 提交于 2020-03-14 15:38:41
numpy数据类型 # numpy创建对象,numpy创建的对象是n阶矩阵,类似python中列表的嵌套 nd = np.array([[1,2,3,4,5],[2,3,4,6,5]]) nd 结果: array([[1, 2, 3, 4, 5], [2, 3, 4, 6, 5]]) ndarray的切片操作 格式:nd[start:end:step] nd1 =[1,2,3,4,5,6,7,8,9,90] #每隔三个取一个 nd1[::3] #结果:[1, 4, 7, 90] 对三维数组进行切片 import matplotlib.pyplot as plt data = Image.open("./timg.jpg") plt.imshow(data) data = np.array(data) #第一维是行,第二维是列,第三维是像素 #颠倒第二维的顺序 data1 = data[::,::-1,:] plt.imshow(data1) 如: #查看数组的格式:shape data1.shape 结果:(140, 121, 3) 对于数组中的值可以进行赋值 nd1 =[1,2,3,4,5,6,7,8,9,90] nd1[3] = 10000 nd1 输出结果: [1, 2, 3, 10000, 5, 6, 7, 8, 9, 90] 注意

NumPy 基础教程

点点圈 提交于 2020-03-14 15:37:47
注:本文是我在阅读 An introduction to Numpy and Scipy 时,一边实践一边记下的笔记。个人觉得这篇介绍 NumPy 的英文文档写的很好,因此如果可以,请停止阅读本文,转去参考此英文文档。 目录 Arrays 其他创建数组的方法 数组的数学运算 数组的迭代 基本的数组操作 比较操作 数组元素选择和操作 向量和矩阵的数学运算 随机数 Numpy 是在 Python 中进行科学计算所依赖的核心库,它提供高性能的多维数组对象,已经大量便于计算的方法。 可以在 Installing packages 找到安装方法,而后在 Python 中采用如下方式引入它: import numpy as np Arrays NumPy 中的核心对象是多维数组 np.ndarray ,它有一个别名 np.array ,这个数组和 Python 中的 array.array 不同,Python 中的 array 只支持一维,而 np.array 支持多维,且提供了更多的方法。 np.array 中只能存放同种类型的数据,如下,使用 np.array 创建数组,第二个参数需指明数组中元素的类型,否则 np.array 会自动推测数据类型: >>> a = np.array([1, 4, 5, 8], float) >>> a array([ 1., 4., 5., 8.]) >>

python NumPy库学习笔记一

*爱你&永不变心* 提交于 2020-03-13 21:33:37
目录 python NumPy库学习笔记一 引言 NumPy Ndarray 对象 NumPy 数据类型 NumPy 数组属性 NumPy 创建数组 numpy.empty numpy.zeros numpy.ones NumPy 从已有的数组创建数组 numpy.asarray numpy.frombuffer numpy.fromiter NumPy 从数值范围创建数组 numpy.arange numpy.linspace numpy.logspace python NumPy库学习笔记一 引言 NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy 为开放源代码并且由许多协作者共同维护开发。 NumPy ,SciPy, Matplotlib 是python中用于替代matlab 的三剑客。 NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用, 这种组合广泛用于替代 MatLab,是一个强大的科学计算环境,有助于我们通过 Python 学习数据科学或者机器学习。 SciPy 是一个开源的 Python 算法库和数学工具包。 SciPy 包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换

LeetCode-数组篇-day 1(26、27、35、53、66题)

╄→尐↘猪︶ㄣ 提交于 2020-03-11 17:00:20
26. 删除排序数组中的重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。 示例 2: 给定 nums = [0,0,1,1,1,2,2,3,3,4], 函数应该返回新的长度 5, 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。 你不需要考虑数组中超出新长度后面的元素。 说明: 为什么返回数值是整数,但输出的答案是数组呢? 请注意,输入数组是以“引用”方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。 你可以想象内部操作如下: // nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝 int len = removeDuplicates ( nums ) ; // 在函数里修改输入数组对于调用者是可见的。 // 根据你的函数返回的长度 , 它会打印出数组中该长度范围内的所有元素。 for ( int i = 0 ; i < len ; i + + ) { print ( nums [ i ] ) ; } 解题:

集合相关的常用工具类

半城伤御伤魂 提交于 2020-03-11 14:47:21
1. 简介 Java中的集合类既可以当做放其他数据的容器,又可以当做常见的数据结构使用。Java中提供了很多好用的工具类来操作这些集合类。本篇博客就来介绍下常用的集合工具类。集合常用的工具类大体可以分为3类: JDK本身提供的工具类; Guava提供的工具类; Apache common-Collection提供的工具类 2. JDK提供的工具类 主要由下面三个: Arrays Collections Objects Arrays 是操作数组对象的工具类, Collections 是操作集合对象的工具类。 Objects 是操作引用数据类型对象的工具类。 Arrays的常用方法: 普通 排序 : Arrays.sort(int[] a) Arrays.sort(int[] a, int fromIndex, int toIndex) 其他非boolean基础数据类型的数组对象以及实现Comparable接口的类的数组对象均有此方法。 并行排序 :JDK1.8新增。 Arrays.parallelSort(int[] a) Arrays.parallelSort(int[] a, int fromIndex, int toIndex) 其他非boolean基础数据类型的数组对象以及实现Comparable接口的类的数组对象均有此方法。 并行计算 :JDK1.8新增,支持函数式编程

Numpy的使用

走远了吗. 提交于 2020-03-10 14:07:28
Numpy的使用: 一、创建ndarray数组 二、指定ndarray数组元素的类型 三、ndarray运算: 四、ndarray数组的基本索引和切片: 五、ndarray数组的布尔索引和花式索引 六、ndarray数组的转置和轴对换 七、ndarray通用函数 7.1一元ufunc: 7.2二元ufunc: 7.3NumPy的where函数使用: 八、ndarray常用的统计方法 九、ndarray数组的去重以及集合运算 十、numpy中的线性代数 十一、numpy中的随机数生成 十二、ndarray数组重塑 十三、ndarray数组的拆分与合并 十四、数组的元素重复操作 参考文档: 一个在Python中做科学计算的基础库,重在数值计算,也是大部分PYTHON科学计算库的基础库,多用于在大型、多维数组上执行数值运算 import numpy as np 一、创建ndarray数组 NumPy最重要的一个特点就是其 N维数组对象 (即ndarray),该对象是一个快速而灵活的 大数据集容器 。你可以 利用这种数组 对 整块数据 执行一些数学运算,其语法跟标量元素之间的运算一样。 创建ndarray数组函数: 创建代码: import numpy as np ; print ( '使用列表生成一维数组' ) data = [ 1 , 2 , 3 , 4 , 5 , 6 ] x =

01: 数组

我们两清 提交于 2020-03-09 00:39:53
算法面试其他篇 目录: 1.1 简单数组题   1、去除列表中相加等于指定数后的列表(x+y=4)       [1,3,5,7,1,2] ==> [5,7,1,2] [1,3,3,5,7,1,2] ==> [3,5,7,1,2] #! /usr/bin/env python # -*- coding: utf-8 -*- def func(l, tag=4): for i in range(len(l)): a = l[i] if a != None: b = tag - a try: index = l.index(b) if index != i: # 避免 2 + 2 = 4只有一个2也没重置为None l[i] = None l[index] = None else: if l.count(b) > 2: # 如果有两个就都重置为 None l[i] = None l[l.index(b)] = None except Exception as e: pass print l # [None, None, 5, 7, 1, 2] while None in l: l.remove(None) return l # [5, 7, 1, 2] l = [1,3,5,7,1,2] print func(l, 4) ''' [1,3,5,7,1,2] [None, None, 5

python数据分析工具 | numpy

ⅰ亾dé卋堺 提交于 2020-03-08 16:44:18
Python中没有提供数组功能,虽然列表可以完成基本的数组功能,但并不是真正的数组,而且在数据量较大时,使用列表的速度回非常慢。因此,Numpy提供了真正的数组功能,以及对数据进行快速处理的函数。Numpy内置函数处理数据的速度是C语言级别的,因此,尽量使用其内置函数。 Numpy安装 Numpy安装和普通的第三方库安装一样,最常用的就是利用 pip 安装: pip install numpy 如果你想做数据分析的话,还是建议安装 anaconda(Windows、macOS、Linux均可使用) ,它是一个集成环境,包含了conda、Python在内的超过180个科学包及其依赖项,几乎所有你用到的库都已经帮你安装好了,同时如果需要其他的第三方库要安装,可以使用其中的 conda 便捷的安装相应库以及依赖。 Numpy基本操作 基本属性 numpy包含很多自己的属性和方法,下面通过一个栗子说明一下几个它自身的重要属性。 创建数组 import numpy as np data = np.array([[1, 2, 3], [4, 5, 6]]) # 创建二维数组 上面是最基本的创建数组方法,但是对于实际应用中,它内置的一些函数更为实用。例如: 下面举例展示一下其中部分用法: 基本操作 Numpy的一个显著特点就是它的矢量化,使得对其操作是面向整个数组而不是各个元素

纯干货总结-动手学NumPy

孤者浪人 提交于 2020-03-08 09:40:16
欢迎大家查看此项目: Dive-into-NumPy NumPy中文网 项目介绍 本项目名为:动手学NumPy。包含以下内容 NumPy简介 NumPy数组与pthon原生数组的区别 NumPy快速入门 NumPy进阶 numpy-100 参考文献 NumPy简介 NumPy是Python中科学计算的基础包。它是一个Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种API,有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数,基本统计运算和随机模拟等等。除其他外,它包括: 功能强大的N维数组对象。 精密广播功能函数。 集成 C/C+和Fortran 代码的工具。 强大的线性代数、傅立叶变换和随机数功能。 NumPy数组与pthon原生数组的区别 NumPy 数组在创建时具有固定的大小,与Python的原生数组对象(可以动态增长)不同。更改ndarray的大小将创建一个新数组并删除原来的数组。 NumPy 数组中的元素都需要具有相同的数据类型,因此在内存中的大小相同。 例外情况:Python的原生数组里包含了NumPy的对象的时候,这种情况下就允许不同大小元素的数组。 NumPy 数组有助于对大量数据进行高级数学和其他类型的操作。通常,这些操作的执行效率更高,比使用Python原生数组的代码更少。