ndarray基础
1. 大数据容器
2. 执行数学运算
3. 容器内所有的元素必须是相同类型的
4. 构成: 一个shape(一个表示各维度大小的原件)和 dtype(一个用于说明数组数据类型的对象)
5. 创建ndarry
#创建数组--使用array函数
data1 = [6, 7.5, 8, 0, 1]
arr1 = np.array(data1)
arr1
array([6., 7.5., 8., 0., 1.])
#嵌套序列,一组等长列表组成的列表,将会被转换为一个多维数组
data2 = [[1, 2, 3, 4], [5, 6, 7, 8]]
arr2 = np.array(data2)
arr2
array = ([[1., 2., 3., 4.], [5., 6., 7., 8.]])
6. 对比ndim、shape、dtype、astype的用法
–ndim 返回的是数组的维度,返回的只有一个数,该数即表示数组的维度。
–shape:表示各位维度大小的元组。返回的是一个元组。
–dtype:一个用于说明数组数据类型的对象。返回的是该数组的数据类型。由于图中的数据都为整形,所以返回的都是int32。如果数组中有数据带有小数点,那么就会返回float64。
–astype:转换数组的数据类型。
#数据
data1 = [1, 2, 3, 4, 5, 6]
data2 = [[1, 2, 3], [4, 5, 6]]
data3 = [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]
arr1 = np.array(data1)
arr2 = np.array(data2)
arr3 = np.array(data3)
#ndim
print(arr1.ndim, arr2.ndim, arr3.ndim)
1 2 3
#在numpy中可以理解为方向,使用0,1,2...数字表示,对于一个一维数组,只有一个0轴,对于2维数组(shape(2,2)),有0轴和1轴,对于三维数组(shape(2,2, 3)),有0,1,2轴
#shape
print(arr1.shape, arr2.shape, arr3.shape)
6 (2,3) (2, 2, 3)
arr1 一维数组 1个数组 6个元素
arr2 二维数组 2个数组 3个元素
arr3 二维数组 2个数组,2个元素,3个元素
#dtype
print(arr1.dtype, arr2.dype, arr3.dype)
int32 int32 int32
#astype
arr1
array([1., 2., 3.])
arr1.astype('int32')
array([1, 2, 3])
#astype:转换数组的数据类型。
#int32 --> float64 完全ok
#float64 --> int32 会将小数部分截断
#string_ --> float64 如果字符串数组表示的全是数字,也可以用astype转化为数值类型
例如
str1 = np.array(['1.25', '2.51', '3.11'], dtype=np.string)
str1.astype('float')
array([1.25, 2.51, 3.11])
7. zeros, ones, empty
-zeros 创建长度或者形状为0的数组
import numpy as np
x = np.zeros(5)
print(x) # [0. 0. 0. 0. 0.]
x = np.zeros([2, 3])
print(x)
# [[0. 0. 0.]
# [0. 0. 0.]]
x = np.array([[1, 2, 3], [4, 5, 6]])
y = np.zeros_like(x)
print(y)
# [[0 0 0]
# [0 0 0]]
-ones 创建长度或者形状为1的数组