数组算术

任何两个等尺寸数组之间的算术操作都应用了逐元素操作的方式。

arr1 = np.array([[1,2,3],[4,5,6]])
arr2 = np.array([[4,2,1],[7,2,4]])
print(arr1 + arr2)
print('---分隔符---')
print(1/arr1)
print('---分隔符---')
print(arr1 > arr2)

索引与切片

list1 = list(range(10))
array1 = np.array(list_1)
list1_slice = list1[5:8]
array1_slice = array1[5:8]
array1_copy = array1.copy()
list1_slice[1] = 12
array1_slice[1] = 12
array1_copy[-1] = 20
print(list1) #out:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(array1) #out:[ 0 1 2 3 4 8 12 7 8 9]
  • 数组的切片是原数组的视图,数据并非被复制,任何对于视图的修改都会反映到数组上。
  • 列表的切片则是复制原列表,在切片中更改不会影响原列表。
  • 想要数组的切片的拷贝,可以显示的复制该数组,例如array1_copy = array1.copy()

多维数组

arr = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(arr[1]) #out:[4 5 6]
print(arr[1][1]) #out:5
print(arr[1,1]) #out:5
print(arr[1:,1]) #out:[5 8]
print(arr[1:,1:])
#[[5 6]
# [8 9]]

布尔索引

arr_b = np.array([False,True,True,False])
arr_a = np.arange(4)
arr_a[arr_b] #out:array([1, 2])
#取反操作
arr_a[~arr_b] #out:array([0, 3])
  • 布尔索引可以使用逻辑运算符 & 合 |
  • 也可以使用<  <=  >  >=   = !=

神奇索引

  • 神奇索引与切片不同,总是将数据复制到一个新的数组中

数组转置与换轴

针对二维

NumPy进阶的更多相关文章

  1. Numpy进阶操作

    目录 1. 如何获取满足条设定件的索引 2. 如何将数据导入和导出csv文件 3. 如何保存和加载numpy对象 4. 如何按列或行拼接numpy数组 5. 如何按列对numpy数组进行排序 6. 如 ...

  2. Python学习之路:NumPy进阶

    import numpy as np; #创建数组的四种办法 ##可以传入任何类数组 a = np.array([0,1,2,3,4]); b = np.array((0,1,2,3,4)); c = ...

  3. Numpy——进阶篇

    impoort numpy as np arr=np.arange(10) #输出奇数 arr[arr%2==1] #将arr中的所有奇数替换为-1,而不改变arr out=np.where(arr% ...

  4. python -- 数据可视化(二)

    python -- 数据可视化 一.Matplotlib 绘图 1.图形对象(图形窗口) mp.figure(窗口名称, figsize=窗口大小, dpi=分辨率, facecolor=颜色) 如果 ...

  5. Numpy库进阶教程(一)求解线性方程组

    前言 Numpy是一个很强大的python科学计算库.为了机器学习的须要.想深入研究一下Numpy库的使用方法.用这个系列的博客.记录下我的学习过程. 系列: Numpy库进阶教程(二) 正在持续更新 ...

  6. Numpy的进阶学习

    前言: 在学习cs231n编写课后作业代码过程中 .发现自己对计算的向量化vectorized不是很懂,编写不出代码.对numpy的库也只是停留在表面 Numpy Numpy学习库链接 1.numpy ...

  7. numpy教程06---ndarray的进阶操作

    欢迎关注公众号[Python开发实战], 获取更多内容! 工具-numpy numpy是使用Python进行数据科学的基础库.numpy以一个强大的N维数组对象为中心,它还包含有用的线性代数,傅里叶变 ...

  8. Matlab 进阶学习记录

    最近在看 Faster RCNN的Matlab code,发现很多matlab技巧,在此记录: 1. conf_proposal  =  proposal_config('image_means', ...

  9. NumPy的详细教程

    原文  http://blog.csdn.net/lsjseu/article/details/20359201 主题 NumPy 先决条件 在阅读这个教程之前,你多少需要知道点python.如果你想 ...

随机推荐

  1. JVM(二),Java怎样实现一次编译到处运行(平台无关性)

    二.Java怎样实现一次编译到处运行(平台无关性) 1.java平台无关性原理 Java源码首先被编译成字节码,再由不同平台的JVM进行解析,JAVA语言在不同的平台上运行时不需要进行重新编译,Jav ...

  2. java+批量下载大文件

    我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用. 这次项目的需求: 支持大文件的上传和续传,要求续传支持所有浏览器,包括ie6,ie7,i ...

  3. jsPDF – 基于 HTML5 的强大 PDF 生成工具

    jsPDF 是一个基于 HTML5 的客户端解决方案,用于生成各种用途的 PDF 文档. 使用方法很简单,只要引入 jsPDF 库,然后调用内置的方法就可以了. 米扑科技项目用到了HHTML5生成PD ...

  4. Java官方操纵byte数组的方式

    java官方提供了一种操作字节数组的方法——内存流(字节数组流)ByteArrayInputStream.ByteArrayOutputStream ByteArrayOutputStream——by ...

  5. BeanFactory和ApplicationContext的区别+部分Spring的使用

    BeanFactory和ApplicationContext的区别 ApplicationContext 方式加载:创建容器的同时 容器初始化,容器所有的bean创建完毕   Spring容器中获取一 ...

  6. TCP 之 TCP_NEW_SYN_RECV状态

    概述 以前的TCP请求控制块没有独立的状态,而是依赖于他们的父控制块的状态,也就是TCP_LISTEN状态,现在要把请求控制块加入到全局的ehash中,所以需要一个状态,而TCP_SYN_RECV状态 ...

  7. echarts ajax请求demo

    <body> <!--为ECharts准备一个具备大小(宽高)的Dom--> <div id="main" style="width: 10 ...

  8. nacos 使用笔记

    启动命令: 单机模式启动 start.sh -m standalone

  9. Jenkins Publish FTP远程部署过程

    步骤: 1.安装FileZilla FTP Server 2.添加FTP账号: 1.Edit——Users——Add 2.Edit——Users——Shared folders 3.下载FileZil ...

  10. 最详细React Native环境配置及项目初始化(2018-10-14)

    注意配环境一定要全程使用稳定VPN工具,否则会浪费大量时间!!!相信我 一.截止到项目初始化之前也就是执行这条命令之前都按官网的方法就可以 https://reactnative.cn/docs/ge ...