NumPy数组的基础知识
NumPy是Numerical Python的缩写。它是一个用于处理数组的Python库。在Python中,我们使用列表来实现数组的目的,但它的处理速度很慢。NumPy数组是一个强大的N维数组对象,它在线性代数、傅里叶变换和随机数能力中的应用。它提供的数组对象比传统的Python列表快得多。
数组的类型:
1.一维数组
2.多维数组
一维数组
一维数组是线性数组的一种类型。
示例:
# importing numpy module
import numpy as np
# creating list
list = [1, 2, 3, 4]
# creating numpy array
sample_array = np.array(list1)
print("List in python : ", list)
print("Numpy Array in python :",
sample_array)
输出:
List in python : [1, 2, 3, 4]
Numpy Array in python : [1 2 3 4]
检查列表和数组的数据类型。
print(type(list_1))
print(type(sample_array))
输出:
<class 'list'>
<class 'numpy.ndarray'>
多维数组:
多维数组中的数据是以表格形式存储的。
示例:
# importing numpy module
import numpy as np
# creating list
list_1 = [1, 2, 3, 4]
list_2 = [5, 6, 7, 8]
list_3 = [9, 10, 11, 12]
# creating numpy array
sample_array = np.array([list_1,
list_2,
list_3])
print("Numpy multi dimensional array in python\n",
sample_array)
输出:
Numpy multi dimensional array in python
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
注意:在numpy.array()中使用[ ]运算符,以获得多维数据。
数组的解剖:
1.Axis:数组的Axis描述了数组中的索引顺序。
axis 0=一维
axis 1=二维
axis 2 = 三维
2.Shape:沿着每个轴的元素的数量。它来自一个元组。
示例:
# importing numpy module
import numpy as np
# creating list
list_1 = [1, 2, 3, 4]
list_2 = [5, 6, 7, 8]
list_3 = [9, 10, 11, 12]
# creating numpy array
sample_array = np.array([list_1,
list_2,
list_3])
print("Numpy array :")
print(sample_array)
# print shape of the array
print("Shape of the array :",
sample_array.shape)
输出:
Numpy array :
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
Shape of the array : (3, 4)
示例:
import numpy as np
sample_array = np.array([[0, 4, 2],
[3, 4, 5],
[23, 4, 5],
[2, 34, 5],
[5, 6, 7]])
print("shape of the array :",
sample_array.shape)
输出:
shape of the array : (5, 3)
3.等级:数组的等级只是它的轴(或维度)的数量。
一维数组的等级为1.
二维数组的等级为2.
4.数据类型对象(dtype):数据类型对象(dtype)是numpy.dtype类的一个实例。它描述了一个数组项目所对应的固定大小的内存块中的字节应该如何被解释。
示例:
# Import module
import numpy as np
# Creating the array
sample_array_1 = np.array([[0, 4, 2]])
sample_array_2 = np.array([0.2, 0.4, 2.4])
# display data type
print("Data type of the array 1 :",
sample_array_1.dtype)
print("Data type of array 2 :",
sample_array_2.dtype)
输出:
Data type of the array 1 : int32
Data type of array 2 : float64
创建Numpy数组的一些不同方法:
1. numpy.array():Numpy中的数组对象被称为ndarray。我们可以使用numpy.array()函数创建ndarray。
语法: numpy.array(parameter)
示例:
# import module
import numpy as np
#creating a array
arr = np.array([3,4,5,5])
print("Array :",arr)
输出:
Array : [3 4 5 5]
2. numpy.fromiter() : fromiter()函数从一个可迭代对象中创建一个新的一维数组。
语法: numpy.fromiter(iterable, dtype, count=-1)
示例 1:
#Import numpy module
import numpy as np
# iterable
iterable = (a*a for a in range(8))
arr = np.fromiter(iterable, float)
print("fromiter() array :",arr)
输出:
fromiter() array : [ 0. 1. 4. 9. 16. 25. 36. 49.]
示例 2:
import numpy as np
var = "Geekforgeeks"
arr = np.fromiter(var, dtype = 'U2')
print("fromiter() array :",
arr)
输出:
fromiter() array : [‘G’ ‘e’ ‘e’ ‘k’ ‘f’ ‘o’ ‘r’ ‘g’ ‘e’ ‘e’ ‘k’ ‘s’]
3. numpy.range():这是一个内置的NumPy函数,可以在一个给定的区间内返回均匀的数值。
语法: numpy.arange([start, ]stop, [step, ]dtype=None)
示例:
import numpy as np
np.arange(1, 20 , 2,
dtype = np.float32)
输出:
array([ 1., 3., 5., 7., 9., 11., 13., 15., 17., 19.], dtype=float32)
4. numpy.linspace() :这个函数在两个极限之间的指定范围内返回均匀的数字。
语法: numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)
示例 1:
import numpy as np
np.linspace(3.5, 10, 3)
输出:
array([ 3.5 , 6.75, 10. ])
示例 2:
import numpy as np
np.linspace(3.5, 10, 3,
dtype = np.int32)
输出:
array([ 3, 6, 10])
5. numpy.empty():该函数创建一个给定形状和类型的新数组,没有初始化值。
语法: numpy.empty(shape, dtype=float, order=’C’)
示例:
import numpy as np
np.empty([4, 3],
dtype = np.int32,
order = 'f')
输出:
array([[ 1, 5, 9],
[ 2, 6, 10],
[ 3, 7, 11],
[ 4, 8, 12]])
6. numpy.ones():该函数用于获得一个给定形状和类型的新数组,用one(1)填充。
语法: numpy.ones(shape, dtype=None, order=’C’)
示例:
import numpy as np
np.ones([4, 3],
dtype = np.int32,
order = 'f')
输出:
array([[1, 1, 1],
[1, 1, 1],
[1, 1, 1],
[1, 1, 1]])
7. numpy.zeros():该函数用于获得一个给定形状和类型的新数组,其中充满零(0)。
语法: numpy.ones(shape, dtype=None)
示例:
import numpy as np
np.zeros([4, 3],
dtype = np.int32,
order = 'f')
输出:
array([[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]])