文章目录
1. 数组的创建
1.1 数组的属性
-> ndim : 返回数组的维数。
-> shape : 返回数组的尺寸(行数, 列数)
-> size : 返回数组中元素的个数
-> dtype : 返回数组中元素的类型
-> itemsize : 返回数组中元素所占内存的大小(字节为单位)
1.2 创建数组时提供的参数
Numpy库提供了array函数,可以创建一维或多维数组,语法如下
numpy.array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0)
-> object : 可迭代对象,用于创建一个数组
-> dtype : 声明数组中元素的类型,默认为None,表示会跟随传入的可迭代对象中的元素本身的类型; 比如你的object传入的是['1', '2']那么dtype就是<U2
-> ndmin : 指定数组的最小维数,若传入的object维数小于ndmin所定义的,则会自动补充空[]增加维数。
举个例子:
import numpy as np
'''
利用array函数创建数组
'''
arr1 = np.array([['1', '90'], ['2', '90'], ['3', 90]])
print(arr1)
# shapre属性可以改变数组的行和列的排列形式,但是要保证改变后元素的个数和之前是一样的
arr1.shape = 3, 2
# 针对元素的属性
print('dtype: ', arr1.dtype) # 元素的类型
print('size: ', arr1.size) # 数组中元素的个数
print('itemsize: ', arr1.itemsize) # 一个元素占几个字节
# 针对数组的属性
print('ndim: ', arr1.ndim) # 数组的维数
print('shape: ', arr1.shape) # 数组是几行几列的
输出结果如下:
[['1' '90']
['2' '90']
['3' '90']]
dtype: <U2
size: 6
itemsize: 8
ndim: 2
shape: (3, 2)
1.3 创建数组的8中方法
1.3.1 array
向array(object)传入object对象,根据object创建一个数组。
arr1 = np.array([['1', '90'], ['2', '90'], ['3', 90]])
print(arr1)
输出
[['1' '90']
['2' '90']
['3' '90']]
1.3.2 arange
arange(初始值, 终值, 步长)
可以通过指定初始值,终值和步长来创建数组。注意全进是左闭右开的 [初始值, 终值) ,即指定的终值是取不到的。
arr1 = np.arange(0, 1, 0.1)
print(arr1)
# [0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]
1.3.3 linspace
linspace(初始值,终值, 元素个数)
闭区间, 即终值是可以取到的
arr1 = np.linspace(1, 5, 10)
print(arr1)
# [1. 1.44444444 1.88888889 2.33333333 2.77777778 3.22222222 3.66666667 4.11111111 4.55555556 5. ]
1.3.4 logspace
logspace(开始次方,最终次方,元素个数);
生成等比数列,前两个参数表示的是10的多少次方; 闭区间,终值能取到
arr1 = np.logspace(0, 2, 4) # 生成一个等比数列,4个元素,[10^0-10^2]
print(arr1) # [ 1. 4.64158883 21.5443469 100. ]
1.3.5 zeros
zeros((行, 列))
创建一个值全部为0的数组
arr1 = np.zeros((4, 3))
print(arr1)
'''
[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]
'''
1.3.6 eye
eye(数组大小)
生成主对角线为1,其他元素为0的数组,类似于单位矩阵
arr1 = np.eye(4)
print(arr1)
'''
[[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]]
'''
1.3.7 diag
diag([对角线上的元素])
自定义对角线上的元素,其他元素都为0
arr1 = np.diag([1, 2, 3])
print(arr1)
'''
[[1 0 0]
[0 2 0]
[0 0 3]]
'''
1.3.8 ones
ones((行, 列))
创建元素全部为1的数组
arr1 = np.ones((3, 4))
print(arr1)
'''
[[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]
'''
上面很多数组的默认元素类型都是float,可以在定义的时候指定dtype
来改变类型,如
arr1 = np.ones((3,4), dtype='str')
print(arr1)
'''
[['1' '1' '1' '1']
['1' '1' '1' '1']
['1' '1' '1' '1']]
'''