python自学成才之路 numpy 基础

时间:2022-07-23
本文章向大家介绍python自学成才之路 numpy 基础,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

文章目录

本文的目的是了解numpy以及numpy的一些基本操作

创建numpy

1.直接使用np.array传入python数组的方式创建

import numpy as np 
my_array = np.array([1, 2, 3, 4, 5]) 
print(my_array)

array = [1,2,3,4,5,6]
my_array2 = np.array(array) 
print(my_array2)


[1 2 3 4 5]
[1 2 3 4 5 6]

2.使用np自带的函数来创建

2.1 ones函数 创建元素都是1的np数组
my_array = np.ones((5))
print(my_array)

[1. 1. 1. 1. 1.]

2.2 zeros函数 创建元素都是0的np数组

my_array = np.zeros((5))
print(my_array)

[0. 0. 0. 0. 0.]

2.3random函数 创建随机数组

my_array = np.random.random((5))
print(my_array)

[0.51508462 0.8339307  0.7502982  0.47801579 0.98034439]

查看numpy

1.使用shape函数查看np数组形状

my_array = np.ones((5))
print(my_array.shape)

my_array = np.ones((5,3))
print(my_array.shape)

my_array = np.ones((5,3,2))
print(my_array.shape)

(5,)
(5, 3)
(5, 3, 2)

使用shape函数得到的数组形状是一个元组,前面创建的都是一维数组,看起来很直观,那这种多维数组看起来是什么样子呢?

1.1二维数组
my_array = np.ones((3,2))
print(my_array)

[[1. 1.]
 [1. 1.]
 [1. 1.]]

这个二维数组就是一个大的数组里面包含三个小的有两个元素的一维数组

1.2 三维数组
my_array = np.ones((5,3,2))
print(my_array)

[[[1. 1.]
  [1. 1.]
  [1. 1.]]

 [[1. 1.]
  [1. 1.]
  [1. 1.]]

 [[1. 1.]
  [1. 1.]
  [1. 1.]]

 [[1. 1.]
  [1. 1.]
  [1. 1.]]

 [[1. 1.]
  [1. 1.]
  [1. 1.]]]

这个三维数组就是一个大的数组里面包含五个(3,2)的二维数组

1.3 多维数组

my_array = np.ones((n1,n2,n3,n4,…)) 以此类推,更高维的np数组其实就是一个大的数组中包含n1个(n2,n3,n4,…)多维数组

2.获取np数组中的某个元素

my_array = np.array([
    [[1,2,3],[4,5,6]],
    [[7,8,9],[10,11,12]],
    [[13,14,15],[16,17,18]]
])
print(my_array.shape)

(3, 2, 3)

获取16这个元素,他在最外层的第三个元素里,第二层的第二个元素里,最后一层的第一个元素里,所以位置就是[2,1,0],numpy中数组下标也是从0开始的。

修改numpy

将上面的16修改成17

my_array[2,1,0] = 17
my_array[2,1,0]

17

基本运算

numpy数组之间也可以做加减乘除运算,但是前提是,这些运算的数组形状必须一样。

my_array = np.array([
    [[1,2,3],[4,5,6]],
    [[7,8,9],[10,11,12]],
    [[13,14,15],[16,17,18]]
])
my_array2 = np.array([
    [[1,2,3],[4,5,6]],
    [[7,8,9],[10,11,12]],
    [[13,14,15],[16,17,18]]
])
# 加法运算
print(my_array + my_array2)

[[[ 2  4  6]
  [ 8 10 12]]

 [[14 16 18]
  [20 22 24]]

 [[26 28 30]
  [32 34 36]]]

# 减法运算
print(my_array - my_array2)

[[[0 0 0]
  [0 0 0]]

 [[0 0 0]
  [0 0 0]]

 [[0 0 0]
  [0 0 0]]]

# 乘法运算
print(my_array * my_array2)

[[[  1   4   9]
  [ 16  25  36]]

 [[ 49  64  81]
  [100 121 144]]

 [[169 196 225]
  [256 289 324]]]

# 除法运算
print(my_array / my_array2)

[[[1. 1. 1.]
  [1. 1. 1.]]

 [[1. 1. 1.]
  [1. 1. 1.]]

 [[1. 1. 1.]
  [1. 1. 1.]]]