数据来源:文档、图像、声音、数值等等,将所有的数据简单的看做数字数组 非常有助于 理解和处理数据
不管数据是何种形式,第一步都是 将这些数据转换成 数值形式 的可分析数据。
import numpy as np
struct _longobject { PyObject_VAR_HEAD digit ob_digit[1]; };
扩展之后
struct _longobject { long ob_refcnt; PyTypeObject *ob_type; size_t ob_size; long ob_digit[1]; }
L = [ True, "2", 3.0, 4] [type(item) for item in L]
输出:[bool, str, float, int]
灵活具有代价,列表中的每一项必须包含各自的类型信息,引用计数和其他信息。每一项都是一个完整的Python对象。
如果所有变量是同一类型,就有 冗余信息。
import array A = array.array('i', [0,1,2]) A
输出:array('i', [0, 1, 2])
np.array([1,2,3,4,5])
输出:array([1, 2, 3, 4, 5])
必须是同一类型的数据。如果类型不匹配会自动向上转换,
明确设置数据类型,加参数dtype
np.array([1,2,3,4],dtype='float32')
输出:array([1., 2., 3., 4.], dtype=float32)
设置多为数组
np.array([list(range(i, i+3)) for i in [2,4,6]])
输出:array([[2, 3, 4],
[4, 5, 6],
[6, 7, 8]])