numpy 基础操作

  • 1 创建数组
  • 2 数组常用属性和函数
  • 3 数组元素增删
  • 4 元素查找
  • 5 数学运算
  • 6 数组切片

1 创建数组

import numpy as np       #以后numpy简写为np
print(np.array([1,2,3]))    #>>[1 2 3]
print(np.arange(1,9,2))     #>>[1 3 5 7]
print(np.linspace(1,10,4)) #>>[  1.   4.   7.  10.]
print(np.random.randint(10,20,[2,3]))#2行3列
#>>[[12 19 12]
#>> [19 13 10]]
print(np.random.randint(10,20,5)) #>>[12 19 19 10 13]
a = np.zeros(3)
print(a)            #>>[ 0.  0.  0.]
print(list(a))      #>>[0.0, 0.0, 0.0]
a = np.zeros((2,3),dtype=int)  #创建一个2行3列的元素都是整数0的数组

2 数组常用属性和函数

import numpy as np
b = np.array([i for i in range(12)])
#b是[ 0  1  2  3  4  5  6  7  8  9 10 11]
a = b.reshape((3,4))   #转换成3行4列的数组,b不变
print(len(a))       #>>3  a有3行
print(a.size)       #>>12 a的元素个数是12
print(a.ndim)       #>>2  a是2维的
print(a.shape)  #>>(3, 4) a是3行4列
print(a.dtype)  #>>int32  a的元素类型是32位的整数
L = a.tolist() #转换成列表,a不变
print(L)
#>>[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]]
b = a.flatten()    #转换成一维数组
print(b)            #>>[ 0  1  2  3  4  5  6  7  8  9 10 11]

3 数组元素增删

numpy数组一旦生成,元素就不能增删。上面函数返回一个新的数组。

import numpy as np
a = np.array((1,2,3))  #a是[1 2 3]
b = np.append(a,10)        #a不会发生变化
print(b)                #>>[ 1  2  3 10]
print(np.append(a,[10,20]))     #>>[ 1  2  3 10 20]
c = np.zeros((2,3),dtype=int)     #c是2行3列的全0数组
print(np.append(a,c))   #>>[1 2 3 0 0 0 0 0 0]
print(np.concatenate((a,[10,20],a)))
#>>[ 1  2  3 10 20  1  2  3]
In [10]: print(np.concatenate((c,np.array([[10,20,30]]))))...:
[[ 0  0  0][ 0  0  0][10 20 30]]In [12]: np.concatenate((c,np.array([[1,2],[10,20]])),axis=1)
Out[12]:
array([[ 0,  0,  0,  1,  2],[ 0,  0,  0, 10, 20]])
#axis=0可以看做直接把b矩阵接在a的下面,即按行进行合并),axis=1可以看做将矩阵连接在a的右边,即按列进行合并
import numpy as np
a = np.array((1,2,3,4))
b = np.delete(a,1)     #删除a中下标为1的元素,a不会改变
print(b)                #>>[1 3 4]
b = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
print(np.delete(b,1,axis=0))       #删除b的第1行得新数组
#>>[[ 1  2  3  4]
#>> [ 9 10 11 12]]
print(np.delete(b,1,axis=1))       #删除b的第1列得新数组
print(np.delete(b,[1,2],axis=0))   #删除b的第1行和第2行得新数组
print(np.delete(b,[1,3],axis=1))   #删除b的第1列和第3列得新数组

4 元素查找

import numpy as np
a = np.array((1,2,3,5,3,4))
pos = np.argwhere(a==3)  #pos是[[2] [4]]
a = np.array([[1,2,3],[4,5,2]])
print(2 in a)       #>>True
pos = np.argwhere(a==2)  #pos是[[0 1] [1 2]]
b = a[a>2]          #抽取a中大于2的元素形成一个一维数组
print(b)            #>>[3 4 5]
a[a > 2] = -1       #a变成[[ 1  2 -1] [-1 -1  2]]

5 数学运算

import numpy as np
a = np.array((1,2,3,4))
b = a + 1
print(b)    #>>[2 3 4 5]
print(a*b)  #>>[ 2  6 12 20]  a,b对应元素相乘
print(a+b) #>>[3 5 7 9]  a,b对应元素相加
c = np.sqrt(a*10)  #a*10是[10 20 30 40]
print(c) #>>[ 3.16227766  4.47213595  5.47722558  6.32455532

6 数组切片

numpy数组的切片是“视图”,是原数组的一部分,而非一部分的拷贝
切片是左闭右开[,)

import numpy as np
a = np.arange(8)   #a是[0 1 2 3 4 5 6 7]
b = a[3:6]     #注意,b是a的一部分
print(b)        #>>[3 4 5]
c = np.copy(a[3:6])    #c是a的一部分的拷贝
b[0] = 100     #会修改a
print(a)        #>>[  0   1   2 100   4   5   6   7]
print(c)        #>>[3 4 5]  c不受b影响
a = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])
b = a[1:3,1:4]     #b是>>[[ 6  7 8] [10 11 12]]

python学习——numpy基础操作相关推荐

  1. python之numpy基础_Python知识普及:Numpy基础操作

    原标题:Python知识普及:Numpy基础操作 Numpy基础数据结构 创建数组 Numpy通用函数 import numpy as np # reshape 改变数组维度形状 ar1 = np.a ...

  2. Python学习入门基础教程(learning Python)--5.6 Python读文件操作高级

    前文5.2节和5.4节分别就Python下读文件操作做了基础性讲述和提升性介绍,但是仍有些问题,比如在5.4节里涉及到一个多次读文件的问题,实际上我们还没有完全阐述完毕,下面这个图片的问题在哪呢? 问 ...

  3. python基础语法及知识总结-Python 学习完基础语法知识后,如何进一步提高?

    ---4.30更新---感谢大家支持,点赞都破两千了.给大家整理出来新的资料,需要的小伙伴来自取: Python练手项目视频如下: Python自学基础知识如下: 以下为原文内容: Python 学习 ...

  4. NumPy基础操作(1)

    NumPy基础操作(1) (注:记得在文件开头导入import numpy as np) 目录: 数组的创建 强制类型转换与切片 布尔型索引 结语 数组的创建 相关函数 np.array(), np. ...

  5. python中numpy矩阵运算操作大全(非常全)!

    python中numpy矩阵运算操作大全(非常全) //2019.07.10晚 python矩阵运算大全 1.矩阵的输出形式: 对于任何一个矩阵,python输出的模板是: import numpy ...

  6. python学习三-基础语法

    python学习三-基础语法(2019-12-24日晚) 1.源码文件 Python源码文件名通常采用小写的方式,常见的扩展名有: py:基本的源码扩展名. pyw:是另一种源码扩展名,跟py唯一的区 ...

  7. Python 学习 —— Numpy 、Pandas 傻傻分不清楚

    之前的文章里面谈到过,我从R转到Python上,一个很大的不习惯就是R的数据结构比较简单,但是Python的数据类型比较多,很容易就令人头脑混乱.但是今天学习了一下Udacity的课程,顿时就清楚多了 ...

  8. 【Python】Numpy基础:数组和矢量运算

    Numpy基础:数组和矢量运算 目录: 文章目录 一 Numpy及其重要性 二 ndarray:一种多维数组对象 1 创建ndarray 2 ndarray的数据类型 3 数组和标量之间的运算 4 基 ...

  9. Python学习入门7:python学习从基础到高手,再到就业

    其实入门Python并不难,难的是选定自己的学习方向. 简单说下Python可以做什么: 后台开发(Django / Flask / Tornado) 科学计算(Numpy / Scipy / Mat ...

最新文章

  1. 成功的产品 = 做得好 + 卖得好
  2. 学习CSS了解单位em和px的区别
  3. (转)CXF学习笔记一:如何创建、发布和访问基于CXF的服务
  4. java 方法 示例_Java集合syncedSet()方法与示例
  5. 阿里云大数据利器Maxcompute-使用mapjoin优化查询
  6. 原创 | 开源AI测试专题、Jmeter测试专题
  7. 堆之二项堆(Binominal Heap)
  8. 大数据技术在发展 挑战与机遇并存
  9. 跟燕十八学习PHP-第二十五天-mysqlgroup by和having的综合练习
  10. 消费者性别及其所偏好牛奶品牌频数分布
  11. python可视化拖拽编程平台_PythonEditor可视化拼插编辑器:编程不用写代码,拖拖拽拽就可以!...
  12. 为VSCode 设置好看的字体:Operator Mono
  13. 计算机如何更新目录,wps更新目录【设置办法】
  14. 空城计课件软件测试,空城计课件参考
  15. 理论结合实际:如何调试神经网络并检查梯度
  16. 用鸽 计算机教案,幼儿园音乐教案《鸽子》
  17. Cookie的安全性
  18. 国产音频压缩格式JLM——JLM音频播放
  19. 【运筹学】对偶理论 : 对偶性质 ( 对称性质 | 对称性质推导 )
  20. 汽车理论matlab编程,汽车理论课后作业matlab编程详解(带注释)

热门文章

  1. 手机与服务器协议失败,无法连接到服务器。 协议: POP3, 端口: 110, 安全(SSL): 否, 套接字错误: 10060, 错误号: 0x800CCC0E...
  2. 大整数加法【信息学奥赛一本通-1168】
  3. 景德镇三中2021高考成绩查询,2021年景德镇高考状元名单公布,景德镇高考状元学校资料及最高分...
  4. Mipony Pro(网盘下载工具)专业版
  5. PO、DO、TO、DTO
  6. java实现人员排日程
  7. java异常处理怎么加_带你了解Java中的异常处理(上)
  8. oneos组件系列01:i2c_tools
  9. Vue.js设计与实现
  10. java中乱码产生的原因_java出现乱码的原因与解决方法详解