• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

numpy.array 操作使用简单总结

python 搞代码 4年前 (2022-01-07) 54次浏览 已收录 0个评论

这篇文章主要介绍了numpy.array 操作使用简单总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

 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., <strong style="color:transparent">来源gaodai#ma#com搞@@代~&码*网</strong>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函数可重新定义大小。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持gaodaima搞代码网

以上就是numpy.array 操作使用简单总结的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:numpy.array 操作使用简单总结

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址