python编程入门----numpy不常见的小细节
2019独角兽企业重金招聘Python工程师标准>>>
import numpy as np
#### 生成ndarray数组对象(zeros,ones,eye)
- np.zeros(5) == np.zeros((5,)) #意思都是创建numpy的一维数组,该例的答案是[0,0,0,0,0],(5,)表示第一个参数
- a=random.randn(2,3) # 创建 randn(size) 服从 X~N(0,1) 的正态分布随机数组
- b=random.randint([low,high],size) #创建在[low, high]间的数组;a=random.randint(100,200,(3,3))
#### 将其他对象转化为ndarray数组
- numpy.frombuffer(buffer, dtype = float, count = -1, offset = 0) #接受 buffer 输入参数,以流的形式读入转化成 ndarray 对象。
- numpy.asarray((1,2,3)) #将元组变为ndarray
- numpy.fromiter(iterable, dtype, count=-1) #从可迭代对象中建立 ndarray 对象,返回一维数组
- 例:
import numpy as np
# 使用 range 函数创建列表对象
list=range(5)
it=iter(list)
# 使用迭代器创建 ndarray
x=np.fromiter(it, dtype=float)
print(x)
#### numpy从数值范围生成数组
- numpy.arange(start, end, step, dtype)
- numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None) #创建一个一维数组,数组是一个等差数列构成的
- np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None) #函数用于创建一个于等比数列
#### Numpy--结构化数据类型
- numpy中支持很多数据类型,比如int,float等,也可以自己使用dtype()自己新定义一个数据类型,这个数据类型可能类似于C中的数据结构。
student = np.dtype([('name','S20'), ('age', 'i1'), ('marks', 'f4')])
那么相当于c中:
struct student{char name[20];int age;// 8位整型数float marks // 32位浮点数
import numpy as np
student = np.dtype([('name','S20'), ('age', 'i1'), ('marks', 'f4')])
a = np.array([('abc', 21, 50),('xyz', 18, 75)], dtype = student)
print(a) # 数组的 dtype 为 int8(一个字节
x = np.array([1,2,3,4,5], dtype = np.int8)
print (x.itemsize)
#### numpy高级索引 数组可以由整数数组索引、布尔索引及花式索引
- 整数数组索引
q = np.array([[1,2], [3,4], [5,6]])
y = q[[0,1,2], [0,1,0]]
print y
#[1, 4, 5]
2.布尔索引
import numpy as np
x = np.array([[ 0, 1, 2],[ 3, 4, 5],[ 6, 7, 8],[ 9, 10, 11]])
print ('大于 5 的元素是:')
print (x[x > 5])
#[ 6 7 8 9 10 11]
#过滤数组中的非复数元素
a = np.array([1, 2+6j, 5, 3.5+5j])
print (a[np.iscomplex(a)])
#[2.0+6.j 3.5+5.j]
3.花式索引
import numpy as np
x=np.arange(32).reshape((8,4))
print (x[np.ix_([1,5,7,2],[0,3,1,2])])
'''
传入多个索引数组(要使用np.ix_)
[[ 4 7 5 6][20 23 21 22][28 31 29 30][ 8 11 9 10]]
'''
- numpy迭代器****
- **np.nditer(order, op_flags, flags) ** #默认行遍历优先,order遍历顺序,op_flags控制列表是否可读写,flags外部循环
#1
a = np.arange(6).reshape(2,3)
for x in np.nditer(a.T):print (x, end=", " )for x in np.nditer(a.T.copy(order='C')):print (x, end=", " )
#输出(俩个):0, 1, 2, 3, 4, 5,
#可见a的存储与a.T一样在内存中
#2
a = np.arange(0,60,5)
a = a.reshape(3,4)
for x in np.nditer(a, op_flags=['readwrite']): x[...]=2*x
print ('修改后的数组是:')
修改后的数组是:
[[ 0 10 20 30][ 40 50 60 70][ 80 90 100 110]]#3
a = np.arange(0,60,5)
a = a.reshape(3,4)
print ('原始数组是:')
print ('修改后的数组是:')
for x in np.nditer(a, flags = ['external_loop'], order = 'F'):print (x, end=", " )原始数组是:
[[ 0 5 10 15][20 25 30 35][40 45 50 55]]修改后的数组是:
[ 0 20 40], [ 5 25 45], [10 30 50], [15 35 55],
转载于:https://my.oschina.net/u/3127014/blog/2963419
python编程入门----numpy不常见的小细节相关推荐
- Python编程入门系列课程
原文:https://mc.dfrobot.com.cn/thread-309195-1-1.html Python编程入门系列课程--教程目录: Python编程入门系列课程--01 智能绘星 Py ...
- python编程入门视频推荐_Python编程入门2021攻略,书籍推荐,视频推荐,每天更新...
写这篇文章的初衷 2018年我大学毕业,和很多人一样.大学里的世界,我也是整天LOL.打了4年,确还只是个黄金守门员.恋爱也想都不敢想.不过,话说回来,我拿了三年的奖学金.真的不是因为我学习认真,而是 ...
- python编程入门经典-总算理解python编程入门经典教程
为了提高模块加载的速度,每个模块都会在__pycache__文件夹中放置该模块的预编译模块,命名为module.version.pyc,version是模块的预编译版本编码,一般都包含Python的版 ...
- TZC Python编程入门教程 ————题解
本博客原文地址:Python编程入门教程(以在线评测平台为载体) - 暴力都不会的蒟蒻 - 博客园,原文体验更佳 如果你是一名浙江2020级及以后的高中生要学习Python,抑或是一位科学工作者要学习 ...
- python编程入门电子书下载-最经典的25本Python编程开发电子书(附下载地址)!...
如果,有人想转行程序猿,而让给出"如何切入编程"的建议的话,许多人一定毫不犹豫地向他推荐"Python"! 没错,就是这样一只Python,它让众多程序开发者, ...
- python编程语法大全-Python编程入门——基础语法详解
今天小编给大家带来Python编程入门--基础语法详解. 关于怎么快速学python,可以加下小编的python学习群:611+530+101,不管你是小白还是大牛,小编我都欢迎,不定期分享干货 每天 ...
- python编程语法-Python编程入门——基础语法详解
今天小编给大家带来Python编程入门--基础语法详解. 一.基本概念 1.内置的变量类型: Python是有变量类型的,而且会强制检查变量类型.内置的变量类型有如下几种: #浮点 float_num ...
- python编程语法-Python编程入门——基础语法详解(经典)
今天小编给大家带来Python编程入门--基础语法详解.温馨提示: 亮点在最后! 在这里还是要推荐下我自己建的Python开发学习群:301056051,群里都是学Python开发的,如果你正在学习P ...
- python编程入门经典教程-2020年5个经典python编程入门视频教程推荐学习
近三年,python在一二线城市,越来越火热了!企业的需求也是python编程学习者的动力!python学习网整理了适合于零基础朋友的5个python编程入门视频课程,这些都是python编程入门经典 ...
最新文章
- 怎么知道python有哪些库、哪些方法-哪些 Python 库让你相见恨晚?
- ArrayList中remove方法和set(null)的区别
- java的二叉树及三种遍历
- 打通应用隔阂,AR 如何助力互联网度过寒冬?
- Android程序开发:简单电话拨号器
- 选择checkbox显示隐藏内容
- js实现table中td单元格合拼并求和
- box-shadow兼容IE8浏览器写法
- Deep Learning学习笔记(5)——AlphaGo
- 插画师如何确定自己的风格?教你如何一步步找到自己绘画风格!
- 固定资产标签化带来的便利
- Proteus与Keil联调 ARM STM32流水灯
- exe4j将jar包转成exe文件
- matlab excel 新建sheet,matlab excel的sheet增加,重命名操作
- 计算机主机是否接电源,如何检测电脑电源的故障
- Android的变化过程~
- arcgis根据7参转坐标_在ArcGIS Desktop中进行三参数或七参数精确投影转换
- 让数字内容被平等获取 | Android 开发者故事
- Xperia Z1参数及白皮书
- ESP8266学习-内置网页配置(一)