数组算术

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

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. luogu【模板】线性筛素数 (Miller-Rabin素数测试模板)

    这个感觉还是挺好理解的,就是复杂度证明看不懂~ Code: #include <cstdio> #include <algorithm> #include <cstrin ...

  2. K8S中DaemonSet

    DaemonSet DaemonSet 确保全部(或者一些)Node 上运行一个 Pod 的副本.当有 Node 加入集群时,也会为他们新增一个 Pod .当有 Node 从集群移除时,这些 Pod ...

  3. 排序学习(learning to rank)中的ranknet pytorch简单实现

    一.理论部分 理论部分网上有许多,自己也简单的整理了一份,这几天会贴在这里,先把代码贴出,后续会优化一些写法,这里将训练数据写成dataset,dataloader样式. 排序学习所需的训练样本格式如 ...

  4. Navicat Premium12远程连接MySQL数据库

    https://blog.csdn.net/dengjin20104042056/article/details/95091506 方法二: step1: 修改表user mysql> use ...

  5. JIRA绑定邮箱

    [管理-系统-外发邮件] 之前配置QQ邮箱没有成功,后来使用阿里邮箱一次就成功了 [保存]成功后可以测试一下

  6. js计算textarea输入文字的长度

    前言 日常开发过程中,有些时候我们想使用textarea,然后限制输入的长度,在textarea末尾显示剩余可输入的字节数. 如下图:  解决方法: 常用的有三种方法: 1.通过判断charCodeA ...

  7. Android学习_服务

    一.           服务1.         Android多线程 每一个Android应用程序都会分别运行在一个独立的Dalvik(或ART?)虚拟机中,而每个虚拟机在启动时会运行一个UI主线 ...

  8. Git与Repo 的使用

    一.Linux常用命令 pwd           用于显示工作目录,执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称. chmod      用来变更文件或目录的权限. >      ...

  9. Laravel5.2中Eloquent与DB类的区别是什么?

    要了解这些先看看关于数据库组件的那些事儿(就是 Eloquent ORM) 数据库组件大概分了三层: 数据库连接层 查询构造层 应用层 来看一下每一层有哪些东西,分别对应文档的哪一部分: 数据库连接层 ...

  10. Java-类加载(类的生命周期)

    类从被加载到虚拟机内存开始,到卸载出内存为止. 解析阶段在某些情况下可以在初始化后再开始,这是为了支持 Java 语言的运行时绑定. 一.类加载时机 JVM 规范没有强制约束类加载过程的第一阶段(加载 ...