1. 创建一个 [3,5] 所有元素为 True 的数组

In [162]: b = np.ones((3,5), dtype=bool)In [163]: b
Out[163]:
array([[ True,  True,  True,  True,  True],[ True,  True,  True,  True,  True],[ True,  True,  True,  True,  True]])In [164]:

2. 一维数组转二维数组

In [164]: a = np.array([1,2,3,4,5,6])In [165]: a
Out[165]: array([1, 2, 3, 4, 5, 6])In [166]: a.reshape((2,3))
Out[166]:
array([[1, 2, 3],[4, 5, 6]])In [167]: a.reshape(2,-1)
Out[167]:
array([[1, 2, 3],[4, 5, 6]])
In [168]:

a.reshape(2,-1) 其实这里面的 -1 代表自动生成的意思,因为一共 6 个元素,已经确定了 2 行,那么只能是每行 3 个元素了。

3. 数组所有奇数替换为 -1

In [167]: a
Out[167]: array([1, 2, 3, 4, 5, 6])In [168]: b = a.reshape((2,3))In [169]: b
Out[169]:
array([[1, 2, 3],[4, 5, 6]])In [170]: b[b%2==1] = -1In [171]: b
Out[171]:
array([[-1,  2, -1],[ 4, -1,  6]])In [172]:

4. 提取出数组中所有奇数

In [176]: a = np.array([1,2,3,4,5])In [177]: a
Out[177]: array([1, 2, 3, 4, 5])In [178]: a[a%2==1]
Out[178]: array([1, 3, 5])In [179]:

5. 2 个 NumPy 数组的交集

使用 np.intersect1d 函数可以求两个数组的交集

In [179]: a
Out[179]: array([1, 2, 3, 4, 5])In [180]: b = np.array([2,3,6,7])In [181]: b
Out[181]: array([2, 3, 6, 7])In [183]: np.intersect1d(a,b)
Out[183]: array([2, 3])In [184]:

6. 2 个 NumPy 数组的差集

np.setdiff1d(a, b) 可以计算两个数组 a 和 b 的差集。

In [186]: a
Out[186]: array([1, 2, 3, 4, 5])In [187]: b
Out[187]: array([2, 3, 6, 7])In [188]: np.setdiff1d(a, b)
Out[188]: array([1, 4, 5])In [189]: np.setdiff1d(b, a)
Out[189]: array([6, 7])In [190]:

7. 筛选出指定区间内的所有元素

注意:(m >2),必须要添加一对括号。

In [193]: m = np.arange(10).reshape(2, 5)In [194]: m
Out[194]:
array([[0, 1, 2, 3, 4],[5, 6, 7, 8, 9]])In [195]: m[(m > 2) & (m < 6)]
Out[195]: array([3, 4, 5])In [196]:

8. 交换二维数组的多列

In [196]: m =np.arange(10).reshape((2,5))In [197]: m
Out[197]:
array([[0, 1, 2, 3, 4],[5, 6, 7, 8, 9]])In [198]: m[:,[1,0,4,3,2]]
Out[198]:
array([[1, 0, 4, 3, 2],[6, 5, 9, 8, 7]])In [199]:

9. 二维数组,反转行

In [199]: m =np.arange(10).reshape(2,5)In [200]: m
Out[200]:
array([[0, 1, 2, 3, 4],[5, 6, 7, 8, 9]])In [201]: m[::-1]
Out[201]:
array([[5, 6, 7, 8, 9],[0, 1, 2, 3, 4]])In [202]:

10. 生成数值 5~10、shape 为 (3,5) 的随机浮点数

In [203]: np.random.seed(100)In [204]: np.random.randint(5, 10, (3,5))
Out[204]:
array([[5, 5, 8, 5, 7],[9, 7, 7, 7, 7],[6, 5, 5, 9, 8]])In [205]: np.random.rand(3,5)
Out[205]:
array([[0.20920212, 0.18532822, 0.10837689, 0.21969749, 0.97862378],[0.81168315, 0.17194101, 0.81622475, 0.27407375, 0.43170418],[0.94002982, 0.81764938, 0.33611195, 0.17541045, 0.37283205]])In [206]: np.random.randint(5, 10, (3,5)) + np.random.rand(3,5)
Out[206]:
array([[5.89054594, 7.5769015 , 6.74247969, 6.63018394, 8.58184219],[7.02043913, 8.21002658, 5.54468488, 6.76911517, 5.25069523],[9.28589569, 7.85239509, 5.97500649, 5.88485329, 7.35950784]])In [207]:

11. 数组维度交换

In [60]: a = np.arange(10).reshape(2,5)In [61]: a
Out[61]:
array([[0, 1, 2, 3, 4],[5, 6, 7, 8, 9]])In [62]: b = a.swapaxes(0, 1)In [63]: b.shape
Out[63]: (5, 2)In [64]:

swapaxes() 将一个数组的第 0 轴和第 1 轴进行了交换,由 2 行 5 列变成了 5 行 2列。

12. 多维数组转一维数组

In [65]: a = np.arange(10).reshape(2,5)In [66]: a
Out[66]:
array([[0, 1, 2, 3, 4],[5, 6, 7, 8, 9]])In [67]: a.reshape(-1)
Out[67]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])In [68]: a
Out[68]:
array([[0, 1, 2, 3, 4],[5, 6, 7, 8, 9]])In [70]: a.flatten()
Out[70]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])In [71]: a
Out[71]:
array([[0, 1, 2, 3, 4],[5, 6, 7, 8, 9]])In [72]: a.ravel()
Out[72]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])In [73]:

可以看出我们通过 reshape(-1)flatten()ravel() 函数都可以将多维数组转换为 1 维数组。

Numpy 生成 Bool型数组、一维转多维数组reshape、多维转一维数组、替换数组元素、提取数组元素、数组交集、差集、过滤数组元素、二维数组反转行、交换数组维度相关推荐

  1. 如何生成二维码图片(添加中文标识),并保存到指定的图片静态服务地址,解决二维码汉字不存在得问题。

    在开发过程中会有遇到链接转成二维码的需求,明确了链接的拼接内容之后,我们就可以着手写二维码的生成了 导入生成二维码需要的依赖, <dependency><groupId>com ...

  2. python fun函数、求4x4整型数组的主对角线元素的和_输入4行4列的二维数组,求计算主对角线各元素之和,计算副对角线各元素之和。...

    展开全部 #include<stdio.h> int main(void) { int a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; ...

  3. 二维数组和指针(包含交换二维数组行列)

    有必要对a[i]的性质作进一步说明.a[i]从形式上看是a数组中的第i个元素.如果a是一维数组名,则a[i]代表a数组第i个元素所占的内存单元的内容.a[i]是有物理地址的,是占内存单元的.但如果a是 ...

  4. c语言bool怎么用_C语言中的一维数组和二维数组什么?怎么用?

    C++| 匠心之作 从0到1入门学编程[免费]​yun.itheima.com C语言除了基本数据类型之外,还提供了构造类型的数据,构造类型的数据包括数组类型.结构体类型和共用体类型.下面我们详细介绍 ...

  5. 一维数组和二维数组的区别_数组指针和指针数组的区别

    数组指针和指针数组的区别 - hongcha_717 - 博客园​www.cnblogs.com 数组指针(也称行指针) 定义 int (*p)[n]; ()优先级高,首先说明p是一个指针,指向一个整 ...

  6. java中一维数组、二维数组的打乱

    day5 1.数组介绍 数组:存储多种数据类型的多个数. int [ ] arr={80,76,65} 2.数组定义格式和静态初始化 静态初始化:在内存中,为数组容器开辟空间,并将元素存入空间 定义格 ...

  7. 【干货】原生js做的一维数组对象,二维数组对象的模糊查询(前端网备份)...

    最重要的是二维数组 小程序通讯录(student) 后台的数据格式 wxml <input bindconfirm="search" bindinput="bind ...

  8. 2022. 将一维数组转变成二维数组

    2022. 将一维数组转变成二维数组 给你一个下标从 0 开始的一维整数数组 original 和两个整数 m 和 n .你需要使用 original 中 所有 元素创建一个 m 行 n 列的二维数组 ...

  9. Java——动态创建一维数组和二维数组

    一.数组的定义: 整数型一维数组:int[] a;或 int a[];        a = new int[m];(m为数组元素个数) 整数型二维数组:int[][] a;或 int a[][];或 ...

最新文章

  1. bugku 杂项 就五层你能解开吗_你能解开这个和数字有关的逻辑解谜游戏吗? | 每日一考...
  2. 关于android创建快捷方式会启动两个应用的问题(一)
  3. Flutter开发之图片加载(九)
  4. build怎么调试 react_webpack打包调试react并使用babel编译jsx配置方法
  5. grailsgroovy的IllegalArgument异常
  6. python中str和input_python中input()与raw_input()的区别分析
  7. 搞不定的C语言--extern的作用
  8. 老男孩和门户网站学生聊天整理
  9. 【懒人有道】在asp.net core中实现程序集注入
  10. 主帅的一道坎?亚洲杯至今已有九位主帅离任
  11. Android逆向之静态分析
  12. 智慧城市顶层设计实施工作指南
  13. 抓取android log,一键抓取Android的Locat Log
  14. 圆柱坐标轴对称热弹性体基本方程
  15. 2022年一级建造师考试《市政公用工程》练习题及答案(多选题)
  16. 图解 深入浅出JavaWeb:事务必会必知
  17. 基于独立分量分析的语音信号盲源分离
  18. ufo帧率测试网站_手机相机拍摄的视频帧率的测试方法
  19. 百度网盘上传慢的解决方法
  20. php artisan migrate,Laravel php artisan 自动生成Model+Migrate+Controller 命令大全

热门文章

  1. Java substring使用时有哪些注意事项?
  2. gcc 和 g++ 的联系和区别,使用 gcc 编译 c++
  3. QT学习之状态机框架
  4. c/c++中的函数指针和指针函数
  5. 通过前序遍历和中序遍历构建二叉树 python实现
  6. 反编译软件dnSpy中修改baml文件
  7. sql server登录名、服务器角色、数据库用户、数据库角色、架构区别联系
  8. Java中如何实现Date与String之间的数据类型转换
  9. 关键任务应用程序依赖于故障保护存储器
  10. Android @id和@+id 以及 @android:id 的区别