Numpy Array基础知识

Numpy Array基础知识

Numpy是Python中的一个高性能科学计算库,它主要用于处理各种数据结构,尤其适合于处理大量数据的科学运算和数据分析。Numpy最重要的数据结构是Numpy Array,它是一个n维数组对象,包含了同一数据类型的元素和基于该数据类型对数组的索引和分片等高效的操作。

阅读更多:Numpy 教程

Numpy Array创建方式

我们可以用不同的方式来创建Numpy Array:

1. 从Python列表或元组创建

我们可以用Python中的列表(list)或元组(tuple)来创建一个Numpy Array。

import numpy as np

arr = np.array([1,2,3,4,5])
print(arr)
# [1 2 3 4 5]

2. 使用Numpy中的函数创建

Numpy提供了一些函数,用于创建各种类型的数组。

import numpy as np

#创建一个由0组成的数组
a = np.zeros((3,4))
print(a)
# [[0. 0. 0. 0.]
#  [0. 0. 0. 0.]
#  [0. 0. 0. 0.]]

#创建一个由1组成的数组
b = np.ones((2,3))
print(b)
# [[1. 1. 1.]
#  [1. 1. 1.]]

#创建一个空数组,元素为随机值
c = np.empty((2,2))
print(c)
# [[4.9e-324 0.0e+000]
#  [0.0e+000 0.0e+000]]

#创建一个identity数组
d = np.eye(3)
print(d)
# [[1. 0. 0.]
#  [0. 1. 0.]
#  [0. 0. 1.]]

#创建一个等差数列数组
e = np.arange(1,11)
print(e)
# [ 1  2  3  4  5  6  7  8  9 10]

#创建一个元素均匀分布的数组
f = np.linspace(1,10,5)
print(f)
# [ 1.   3.25 5.5  7.75 10. ]

Numpy Array基本操作

我们可以对Numpy Array进行各种高效的操作。

1. Array索引

Numpy Array支持直接通过下标进行索引。

import numpy as np

arr = np.array([1,2,3,4,5])
print(arr[0])
# 1

arr2 = np.array([[1,2,3], [4,5,6], [7,8,9]])
print(arr2[0][1])
# 2

2. Array分片

我们也可以通过下标进行分片操作。

import numpy as np

arr = np.array([1,2,3,4,5])
print(arr[1:4])
# [2 3 4]

arr2 = np.array([[1,2,3], [4,5,6], [7,8,9]])
print(arr2[0:2, 1:3])
# [[2 3]
#  [5 6]]

3. Array形状操作

我们可以通过reshape函数改变数组的形状。

import numpy as np

arr = np.array([1,2,3,4,5,6,7,8])
print(arr.reshape(2,4))
# [[1 2 3 4]
#  [5 6 7 8]]

4. Array属性

我们可以从数组对象中获取其属性,比如:数组的形状、数组的数据类型、数组中元素的数量等等。

import numpy as np

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

print(arr.dtype)
# int64

print(arr.size)
# 6

5. Array运算

我们可以对Numpy Array进行各种高效的运算,如加减乘除、求和、求平均值、计算方差、计算标准差等等。

import numpy as np

arr = np.array([1,2,3,4,5])

print(arr + 2)
# [3 4 5 6 7]

print(arr - 1)
# [0 1 2 3 4]

print(arr * 2)
# [ 2  4  6  8 10]

print(arr / 2)
# [0.5 1.  1.5 2.  2.5]

print(np.sum(arr))
# 15

print(np.mean(arr))
# 3.0

print(np.var(arr))
# 2.0

print(np.std(arr))
# 1.4142135623730951

Numpy Array获取行索引

1. 通过下标获取

我们可以通过下标直接访问数组中的元素。

import numpy as np

arr = np.array([[1,2,3], [4,5,6], [7,8,9]])
print(arr[1])
# [4 5 6]

2. 通过行索引获取

我们也可以通过行索引获取指定行。

import numpy as np

arr = np.array([[1,2,3], [4,5,6], [7,8,9]])
print(arr[arr[:,0] == 4])
# [[4 5 6]]

注意:这里使用了布尔数组的技巧。arr[:,0]表示获取数组arr所有行的第0列,而arr[:,0] == 4则表示比较这些元素是否等于4,得到一个布尔数组。最终使用这个布尔数组作为下标,从而获取满足指定条件的行。

3. 通过where函数获取

where函数可以获取满足条件的元素索引。

import numpy as np

arr = np.array([[1,2,3], [4,5,6], [7,8,9]])
print(np.where(arr == 4))
# (array([1]), array([0]))

其中,np.where函数返回的是一个元组,第一个元素是满足条件的行的下标,第二个元素是满足条件的列的下标。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程