1、array结构
- Numpy,数据由矩阵组成,矩阵计算使用Numpy(科学计算);
- Numpy,list数据需要先转化成ndarray结构(n 表示的是n个 d dimension 维度 array 数组);
- 对于ndarray结构来说,里面所有的元素必须是同一类型的 如果不是的话,会自动的向下进行转换;
数值类型
float–浮点型
str --字符串
int – 整型
object–字符串
2、ndarray基本属性操作
- 使用之前需要先导入numpy工具包;
- 退出需要重新运行工具包。
import numpy as np
- type打印当前输入格式
wang_list = [1,2,3,4,5]
wang_array = np.array(wang_list)
wang_array
type(wang_array)
numpy.ndarray
- dtype打印当前输入类型
wang_array.dtype
dtype(‘int32’)
- astype:转换类型
wang_array.astype(np.float32)
array([ 1., 2., 3., 4., 5.], dtype=float32)
- itemsize:打印当前数组大小
wang_array.itemsize
4
- size:有几个元素
wang_array.size
5
- .shape值;(m,n)表示m*n维数据,即有m个样本数据,每个数据有n个特征,可了解数据规模;也可debug。
wang_array.shape
np.shape(wang_array)
(5,)
- dnim:维度
wang_array.ndim
1
- fill:填充
wang_array.fill(0)
wang_array
array([0, 0, 0, 0, 0])
3、索引与切片
(1)一维数组
- 索引与切片:跟Python都是一样的 还是从0开始的;
- 从左取到右但是不包括右;
- -1表示从最后一个。
wang_list = [1,2,3,4,5,6]
wang_array = np.array(wang_list)
wang_array[0]
1
wang_array[1:3]
array([2, 3])
wang_array[-3:]
array([4, 5, 6])
(2)多维数组索引
- 需指定每个维度的索引;
- 若未指定某一维度,表示取此维度所有数据;
- 右边不指定维度可以省略冒号,左边不可;
- 可通过索引定位到数据,然后对数据进行赋值。
wang_array = np.array([[1,2,3],
[4,5,6],
[7,8,9]])#3*3的二维数组(两个中括号)
wang_array[1,1]
5
wang_array[1,1]=10#赋值
wang_array
array([[ 1, 2, 3],
[ 4, 10, 6],
[ 7, 8, 9]])
wang_array[1]
array([ 4, 10, 6])
wang_array[:,1]
array([ 2, 10, 8])
wang_array[0,0:1]
array([1,2])
(3)赋值(=)&复制(copy)
等号赋值会改变原本数组的值,.copy复制不会改变原本数组的值。
- 等号(=)赋值
wang_array2 = wang_array
wang_array2[1,1] = 100
wang_array
array([[ 1, 2, 3],
[ 4, 100, 6],
[ 7, 8, 9]])
- .copy 复制
wang_array2 = wang_array.copy()
wang_array2[1,1] = 10000
wang_array2
array([[ 1, 2, 3],
[ 4, 10000, 6],
[ 7, 8, 9]])