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.,  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函数可重新定义大小。




  • 9
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: numpy.array 是一个 Python 中用于创建数组的库。它提供了一个高效的多维数组对象,可以用于数学、科学、工程和数据分析等领域。使用 numpy.array 可以轻松地创建、操作和处理数组,包括对数组进行数学运算、索引和切片等操作。 ### 回答2: numpy.array是一个Python库中的一个核心数据结构,用于存储和操作多维数组。它可以处理各种类型的数据,如整数、浮点数、布尔值等。 numpy.array的一个主要特点是它可以高效地进行向量化计算。这意味着可以对整个数组执行数学运算而不需要逐个元素地进行循环。这大大提高了计算效率,并使得numpy.array在科学计算和数据分析领域得到广泛应用。 numpy.array的创建非常简单。可以从Python列表或元组中创建一个数组,也可以使用numpy提供的其他函数来生成特定模式的数组。一旦创建了一个数组,就可以使用各种numpy函数和方法来处理它,如数组的重塑、切片、索引、排序等。 numpy.array还可以进行广播操作。当两个数组形状不完全相同时,numpy会自动调整较小数组的形状以匹配较大数组的形状,从而使它们可以进行加法、减法、乘法等元素级别的操作。这样可以使得代码更简洁,并且降低了内存消耗。 此外,numpy.array还支持向量化的逻辑运算、矩阵运算、线性代数运算、随机数生成等功能。它还具有高度可扩展性,可以与其他Python库如pandas、matplotlib等无缝集成。 综上所述,numpy.array是一个强大的数据结构,它为Python提供了高效的、灵活的、易用的数组操作功能,特别适用于科学计算和数据分析领域。 ### 回答3: numpy.array是Python中一个非常重要的数值计算库,它提供了一个n维数组对象(即多维数组)用于存储和处理大型数据集。这个库为我们提供了许多用于操作数组的函数以及各种数学运算。 numpy.array的最基本的特点是多维的,我们可以创建一维、二维、三维甚至更高维的数组。在数组中的每个元素都可以通过索引来访问和操作,这使得我们可以很方便地进行各种的数值运算。 通过numpy.array,我们可以进行数组的创建、形状改变、类型转换、元素的访问与操作等。例如,我们可以使用numpy.array创建一个一维数组,如a = numpy.array([1, 2, 3]);也可以创建一个二维数组,如b = numpy.array([[1, 2, 3], [4, 5, 6]])。我们还可以使用array对象来进行数学运算,如数组的加减乘除、矩阵的乘法、矩阵的转置等。 numpy.array有着高效的运算速度和内存利用率,它提供了很多快速的数学函数,例如求和、均值、方差等。此外,numpy.array还可以与其他Python库(如pandas、matplotlib等)进行无缝的集成,使得我们可以更方便地进行数据处理和可视化。 总结起来,numpy.array是Python中一个非常强大的数值计算库,它提供了灵活且高效的多维数组对象,使得我们能够方便地进行各种数学运算和数据处理操作。无论是在科学计算、数据分析还是机器学习等领域,numpy.array都是不可或缺的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值