1.创建数组(ndarray)
2.数组与标量的运算
3.切片,索引
4.通用函数
5.数组文件的输入输出
6.随机数生成
1.创建数组(ndarray)
numpy创建的类型是多维数组,数组和列表和元组有什么区别
数组:类型一致[[1,2],[3,4]]用[ ],数组可以通过array函数将list转化为数组
列表:(1,2,3)用( ),支持切片,大小可变,数据类型一致
元组:() 不可变,元素类型可以不一致
(1)# list转换为 ndarray
l = range(10)
data = np.array(l)
print(data)
print(data.shape)
print(data.ndim)
(2)# 嵌套序列转换为ndarray
l2 = [range(10), range(10)]
data = np.array(l2)
print(data)
print(data.shape)
(3)# np.zeros, np.ones 和 np.empty
# np.zeros
zeros_arr = np.zeros((3, 4))
# np.ones
ones_arr = np.ones((2, 3))
# np.empty
empty_arr = np.empty((3, 3))
# np.empty 指定数据类型
empty_int_arr = np.empty((3, 3), int)
print(zeros_arr)
print('-------------')
print(ones_arr)
print('-------------')
print(empty_arr)
print('-------------')
print(empty_int_arr)
(4)# np.arange()
print(np.arange(10))
arange与range的区别
arange返回一个数组 arange(start,end,step)
range返回一个列表 range(start,end,step)
- ndarray数据类型
- dtype定义类型 astype类型 转换
print(zeros_float_arr)
print(zeros_float_arr.dtype)
# astype转换数据类型
zeros_int_arr = zeros_float_arr.astype(np.int32)
print(zeros_int_arr)
print(zeros_int_arr.dtype)
- 矢量化 (vectorization)
arr = np.array([[1, 2, 3],
[4, 5, 6]])
print("元素相乘:")
print(arr * arr)
print("矩阵相加:")
print(arr + arr)
# 矢量与标量运算(广播)体现Python的数据处理比较灵活
print(1. / arr)
print(2. * arr)
- 索引与切片
arr1 = np.arange(10)
print(arr1)
print(arr1[2:5])#起始位置 包括,终止位置不包括
# 多维数组
arr2 = np.arange(12).reshape(3,4)
print(arr2)
print(arr2[1])
print(arr2[0:2, 2:])
print(arr2[:, 1:3])#列表不包含最后一个数
# 条件索引
# 找出 data_arr 中 2015年后的数据
data_arr = np.random.rand(3,3)
print(data_arr)
year_arr = np.array([[2000, 2001, 2000],
[2005, 2002, 2009],
[2001, 2003, 2010]])
#is_year_after_2005 = year_arr >= 2005
#print is_year_after_2005, is_year_after_2005.dtype
# 多个条件
filtered_arr = data_arr[(year_arr <= 2005) & (year_arr % 2 == 0)]
print(filtered_arr)
#filtered_arr = data_arr[is_year_after_2005]
filtered_arr = data_arr[year_arr >= 2005]
print(filtered_arr)
- 转置
print(arr)
print(arr.transpose())
- 通用函数
arr = np.random.randn(2,3)
print(arr)print(np.ceil(arr))
print(np.floor(arr))
print(np.rint(arr))
print(np.isnan(arr))
- np.where
print(arr)
np.where(arr > 0, 1, -1)#条件运算向量版本
- 常用的统计方法
print(arr)
print(np.sum(arr))
print(np.sum(arr, axis=0))#按列
print(np.sum(arr, axis=1))#按行
- np.all 和 np.any
print(arr)
print(np.any(arr > 0))
print(np.all(arr > 0))
arr = np.array([[1, 2, 1], [2, 3, 4]])
print(arr)
print(np.unique(arr))
txt文件的读取 da是文件名
data=np.loadtxt('da.txt')
数组的存储,与读取 save load 其中保存的格式是.npy
arr=np.arange(10)
np.save('some_array',arr)
np.load('some_array.npy')