import numpy as np
numpy.array 常用变量及参数
- dtype变量,用来存放数据类型, 创建数组时可以同时指定。
- shape变量, 存放数组的大小, 这人值是可变的, 只要确保无素个数不变的情况下可以任意修改。(-1为自动适配, 保证个数不变)
- reshape方法,创建一个改变了形状的数组,与原数组是内存共享的,即都指向同一块内存。
创建数组的方法
np.array([[1, 2, 3, 4],[4, 5, 6, 7], [7, 8, 9, 10]], dtype=np.float) np.arange(0,1,0.1) #0到1之间步长为0.1的数组, 数组中不包含1 np.linspace(0, 1, 5) # 开始:0, 结束1, 元素个数 5。 array([ 0. , 0.25, 0.5 , 0.75, 1. ]) np.logspace(0, 1, 5) # 开始:0, 结束1, 元素个数 5. array([ 10**0. , 10**0.25, 10**0.5 , 10**0.75, 10**1. ]) # 结果是 array([ 1. , 1.77827941, 3.16227766, 5.62341325, 10. ]) s = 'abcdefg' np.fromstring(s, dtype=np.int8) def func2(i, j): return (i+1) * (j+1) np.fromfunction(func2, (9,9)) np.ones((2, 2)) np.zero((2, 2)) np.eye(2) #创建二维数组: np.arange(0, 60, 10).reshape(-1, 1) + np.arange(0, 6)
数据读取
通过下标范围获取数据: 与python list对象操作一致。 不同点是这方法获取的数组与原数组是内存共享的。
通过整数序列获取新数组:例 x[[3,2,3,2] ], 产生新数组, 内存不共享
使用布尔数组获取数据:例: x[np.array([True, False, True, False, False])] 或 x[x>0.5], 返回True对应的数字。
代码示例:
> x = np.arange(10) > y = x[::-1] > x array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) > y array([9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) > y[0] = 100 > x array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 100]) > y array([100, 8, 7, 6, 5, 4, 3, 2, 1, 0]) > x[0] = 99 > x array([ 99, 1, 2, 3, 4, 5, 6, 7, 8, 100]) > y array([100, 8, 7, 6, 5, 4, 3, 2, 1, 99]) > y = x[1:6] > y array([1, 2, 3, 4, 5]) > y[2] = 33 > y array([ 1, 2, 33, 4, 5]) > x array([ 99, 1, 2, 33, 4, 5, 6, 7, 8, 100]) > x[[3,2,3,2]] array([33, 2, 33, 2]) > z = x[[3,2,3,2]] > z array([33, 2, 33, 2]) > z[3] = 4 > z array([33, 2, 33, 4]) > x array([ 99, 1, 2, 33, 4, 5, 6, 7, 8, 100]) > x[x>10] array([ 99, 33, 100]) >
数组扩展
np.vstack((a, b)): 增加行数, 把b数据追加到a的下面, 上下连接。
np.hstack((a, b)): 增加列数,把a, b左右连接。
> a = np.ones((3,3)) > b = np.eye(3) > a array([[ 1., 1., 1.], [ 1., 1., 1.], [ 1., 1., 1.]]) > b array([[ 1., 0., 0.], [ 0., 1., 0.], [ 0., 0., 1.]]) > b *= 2 > b array([[ 2., 0., 0.], [ 0., 2., 0.], [ 0., 0., 2.]]) > np.vstack((a, b)) array([[ 1., 1., 1.], [ 1., 1., 1.], [ 1., 1., 1.], [ 2., 0., 0.], [ 0., 2., 0.], [ 0., 0., 2.]]) > > np.hstack((a, b)) array([[ 1., 1., 1., 2., 0., 0.], [ 1., 1., 1., 0., 2., 0.], [ 1., 1., 1., 0., 0., 2.]])
ufunc运算
ufunc是universal function的缩写,它是一种能对数组的每个元素进行操作的函数。NumPy内置的许多ufunc函数都是在C语言级别实现的,因此它们的计算速度非常快。
np.sin(x, x) np.add(a, b) ~ a+b np.subtract(a, b) ~ a-b np.multiply(a, b) ~ a*b divide ~ a/b floor divide ~ a//b negative ~ -a power ~ a**b remainder ~ a % b
注意:复杂运算时,中间步聚会有临时变量,这会拖慢运算速度。
如:
x = a*b + c
等价于
t = a*b x = t + c del t
所以可手动优化
x = a * b x += c
二维数组转一维
> a array([[ 1, 2, 3, 4], [ 4, 5, 6, 7], [ 7, 8, 9, 10]]) > a.ravel() array([ 1, 2, 3, 4, 4, 5, 6, 7, 7, 8, 9, 10])
reshape函数可重新定义大小。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
更新日志
2024年09月27日
2024年09月27日
- 纯音入心系列纯音乐《中央民族乐团-古筝传奇》1CD[MP3][253.1MB]
- 江玲.1989-这样你才爱我,是吗?【新作有声】【WAV+CUE】
- 郭美美.2010-我是郭美美【华纳】【WAV+CUE】
- 黄心懋1991-轻忧郁【滚石】【WAV+CUE】
- 群星.2000-大地金曲世纪回顾2CD【大地】【WAV+CUE】
- 王菲.1996-浮躁(2024环球MQA-UHQCD限量版)【环球】【WAV+CUE】
- 群星.2022-传家电视剧原声带【东阳欢娱】【FLAC分轨】
- 《摇滚教父 伍佰黄金精选 2CD》 [WAV+CUE][1GB]
- 《凤凰传奇 我从草原来》[WAV/分轨][400MB]
- 《叶倩文 真心真意过一生》[WAV+CUE][400MB]
- 潘越云.1985-世间女子(滚石25周年经典复刻版)【滚石】【WAV+CUE】
- 陈柏宇.2009-CANT.BE.HALF【SONY】【WAV+CUE】
- 李明依.1989-小女生【滚石】【WAV+CUE】
- 《李荣浩 新时代创作新人王》[WAV分轨][310MB]
- 《黑鸭子与马头琴 史上最动听草原音乐》[WAV+CUE][320MB]