NumPy进阶
数组算术
任何两个等尺寸数组之间的算术操作都应用了逐元素操作的方式。
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进阶的更多相关文章
- Numpy进阶操作
目录 1. 如何获取满足条设定件的索引 2. 如何将数据导入和导出csv文件 3. 如何保存和加载numpy对象 4. 如何按列或行拼接numpy数组 5. 如何按列对numpy数组进行排序 6. 如 ...
- Python学习之路:NumPy进阶
import numpy as np; #创建数组的四种办法 ##可以传入任何类数组 a = np.array([0,1,2,3,4]); b = np.array((0,1,2,3,4)); c = ...
- Numpy——进阶篇
impoort numpy as np arr=np.arange(10) #输出奇数 arr[arr%2==1] #将arr中的所有奇数替换为-1,而不改变arr out=np.where(arr% ...
- python -- 数据可视化(二)
python -- 数据可视化 一.Matplotlib 绘图 1.图形对象(图形窗口) mp.figure(窗口名称, figsize=窗口大小, dpi=分辨率, facecolor=颜色) 如果 ...
- Numpy库进阶教程(一)求解线性方程组
前言 Numpy是一个很强大的python科学计算库.为了机器学习的须要.想深入研究一下Numpy库的使用方法.用这个系列的博客.记录下我的学习过程. 系列: Numpy库进阶教程(二) 正在持续更新 ...
- Numpy的进阶学习
前言: 在学习cs231n编写课后作业代码过程中 .发现自己对计算的向量化vectorized不是很懂,编写不出代码.对numpy的库也只是停留在表面 Numpy Numpy学习库链接 1.numpy ...
- numpy教程06---ndarray的进阶操作
欢迎关注公众号[Python开发实战], 获取更多内容! 工具-numpy numpy是使用Python进行数据科学的基础库.numpy以一个强大的N维数组对象为中心,它还包含有用的线性代数,傅里叶变 ...
- Matlab 进阶学习记录
最近在看 Faster RCNN的Matlab code,发现很多matlab技巧,在此记录: 1. conf_proposal = proposal_config('image_means', ...
- NumPy的详细教程
原文 http://blog.csdn.net/lsjseu/article/details/20359201 主题 NumPy 先决条件 在阅读这个教程之前,你多少需要知道点python.如果你想 ...
随机推荐
- 7.Java Web的数据库操作
一.环境配置(基于MySQL数据库) 1.下载MySQL数据库 2.下载安装 Navicat,破解方法去吾爱破解网站查询 第一次连接mysql时可能会出现错误,可能是因为二者对密码的编码方法不一致,可 ...
- 斐波那契数列的通项公式x+洛谷P2626x
#include<cstdio> #include<iostream> #include<cmath> using namespace std; int main( ...
- 记使用vim常用的快捷键
显示行数 :set nu 跳转到最后一行 G 跳转到指定行数 nG n为行数 跳转到行首 0 跳转到行尾 $ (shift+4)
- AcWing:167. 木棒(dfs + 剪枝)
乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过50个长度单位. 然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度. 请你设计一个程序,帮助乔 ...
- ettercap局域网DNS切换到恶意网址
ettercap -i eth0 -Tq -M arp:remote -P dns_spoof /// /// Dns欺骗--Ettercap工具进行Dns欺骗 转载至 https://blog.cs ...
- springboot+dubbo+zookeeper+mybatis
参考地址:https://www.cnblogs.com/gaopengfirst/p/9555240.html 首先创建一个maven项目: 再在该父项目中创建3个module,分别是:provid ...
- Java程序如何限速(控制下载和上传速度)
转自 http://www.blogjava.net/canvas/articles/bandwidthlimiter.html 这里简单的讨论一下java设计网络程序中如何控制上传和下载速度,我们常 ...
- DP&图论 DAY 3 下午 考试
Problem AProblem Description有一天 Tarzan 写了一篇文章,我们发现这文章当中一共出现了 n 个汉字,其中第 i 个汉字出现了 ai 次,因为 Tarzan 不希望文章 ...
- NodejS---require的机制
假设Y是路径,X是文件名或目录名,当 Nodejs 遇到 require(Y+X) 时,按照下面的顺序处理: 1.如果 X 是核心模块(例如:require("http")) a. ...
- #ifdef _WIN32的来源
宏定义:#ifdef _WIN32 由编译器(ml.exe/ml64.exe)内部定义的.具体描述是: _WIN32:Defined for applications for Win32 and ...