numpy记录下学习的过程

numpy记录下学习的过程,第1张

1.生成 NumPy 数组

要生成 NumPy 数组,需要使用 np.array() 方法。np.array() 接收 Python 列表作为参数,生成 NumPy 数组(numpy.ndarray )。

x = np.array([1, 2, 3, 4])
y = np.array([1, 1, 1, 1])
print('x:', x, 'y', y, type(x))
print('x+y:', x + y)
print('x-y:', x - y)

x = np.zeros(shape=(2,3))
print('x:')
print(x,x.shape)

运行结果:

x: [1 2 3 4] y [1 1 1 1] <class 'numpy.ndarray'>
x+y: [2 3 4 5]
x-y: [0 1 2 3]

x:
[[0. 0. 0.]
 [0. 0. 0.]] (2, 3)
2.NumPy 的 N 维数组

NumPy 不仅可以生成一维数组(排成一列的数组),也可以生成多维数组。

x = np.array([[1, 2], [3, 4]])
y = np.array([[1, 1], [1, 1]])
print('x:\n', x, type(x),x.shape,x.dtype)
print('y:\n', y, type(y),y.shape,y.dtype)
print('x+y:\n', x + y)
print('x-y:\n', x - y)

运行结果:

x:
 [[1 2]
 [3 4]] <class 'numpy.ndarray'> (2, 2) int32
y:
 [[1 1]
 [1 1]] <class 'numpy.ndarray'> (2, 2) int32
x+y:
 [[2 3]
 [4 5]]
x-y:
 [[0 1]
 [2 3]]
3.广播

NumPy 中,形状不同的数组之间也可以进行运算。之前的例子中,在 2×2 的矩阵 A 和标量 10 之间进行了乘法运算。在这个过程中,如图 1-1 所示,标量 10 被扩展成了 2 × 2 的形状,然后再与矩阵 A 进行乘法运算。这个巧妙的功能称为广播 (broadcast)。

x = np.array([[1, 2], [3, 4]])
y = np.array([10, 20])
print('x*y:\n', x * y)

运行结果:

x*y:
 [[10 40]
 [30 80]]

在这个运算中,如图所示,一维数组 y 被“巧妙地”变成了和二位数组 x 相同的形状,然后再以对应元素的方式进行运算。


综上,因为 NumPy 有广播功能,所以不同形状的数组之间也可以顺利地进行运算。

4.访问数据
import numpy as np

x = np.array([[51, 55],
              [14, 19],
              [0, 4]])
print('x[0]:', x[0])
print('x[0]:', x[0][1])

for i, row in enumerate(x):
    print('{}:'.format(i), row)

# 将X转换为一维数组
x = x.flatten()
print(x)

# 获取索引为0、2、4的元素
print(x[np.array([0,2,4])])

# 运用这个标记法,可以获取满足一定条件的元素。例如,要从 X 中抽出大于 15 的元素,可以写成如下形式。
print(x[x>15])

对 NumPy 数组使用不等号运算符等(上例中是 X > 15 ),结果会得到一个布尔型的数组。
array([ True, True, False, True, False, False], dtype=bool),上例中就是使用这个布尔型数组取出了数组的各个元素(取出 True 对应的元素)。

5.np.arange

返回一个有终点和起点的固定步长的排列,如[1,2,3,4,5],起点是1,终点是6,步长为1。
参数个数情况: np.arange()函数分为一个参数,两个参数,三个参数三种情况
1)一个参数时,参数值为终点,起点取默认值0,步长取默认值1。
2)两个参数时,第一个参数为起点,第二个参数为终点,步长取默认值1。
3)三个参数时,第一个参数为起点,第二个参数为终点,第三个参数为步长。其中步长支持小数

x = np.arange(0,6,0.5)
print(x)

运行结果:

[0.  0.5 1.  1.5 2.  2.5 3.  3.5 4.  4.5 5.  5.5]

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/714701.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-24
下一篇 2022-04-24

发表评论

登录后才能评论

评论列表(0条)

保存