关于numpy的简单操作
立即下载
资源介绍:
关于numpy的简单操作
'''
# 创建数组
arr = np.array([1,2,3,4,5,6,7,8,9])
print(arr)
arr1 = np.empty([2,3])
print(arr1)
arr2 = np.zeros([3,4])
print(arr2)
arr3 = np.ones([4,5])
print(arr3)
arr4 = np.zeros_like(arr1)
print(arr4)
arr5 = np.ones_like(arr1)
print(arr5)
arr6 = np.asarray([(1,2,3),(4,5,6)])
print(arr6)
arr7 = np.fromiter(range(10), dtype=int, count=5)
print(arr7)
arr8 = np.arange(10,20,2)
print(arr8)
arr9 = np.linspace(10,20,3)
print(arr9)
'''
import numpy as np
'''
arr = np.array([0, 1, 22, 333, 4444, 555, 66, 7, 88, 999])
# 切片和索引
print(arr[slice(1, 7, 2)])
print(arr[1:7:2])
arr1 = arr.reshape(5, 2)
print(arr1)
print(arr1[0:2, 1:3])
#布尔索引
def fn(a):
return a > 3
print(arr1[fn(arr1)])
print(arr1[~fn(arr1)])
#花式索引
arr2 = np.array([1, 3, 5, 9])
print(arr[arr2])
#二维数组
#读取指定的行
print(arr1[[1,4,2]])
#倒序引入
print(arr1[[-1,-4,-2]])
#传入多个索引数组(要使用 np.ix_),前面为第几行,后面为该行的第几个
print(arr1[np.ix_([1,4,2],[1,0])])
'''
'''
# 广播:允许NumPy用不同大小的数组进行算术运算。
# 维数相同,各维度长度相同
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = a * b
print(c)
# 形状不同时
b = np.array([[4, 5, 6], [4, 3, 2]])
c = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(c)
# 数组的长度要相同,且至少有一个维度是一维
d = a * c
print(d)
# e = b*c
# print(e)
# ValueError: operands could not be broadcast together with shapes (2,3) (3,3)
'''
# 修改数组形状
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
# reshape中数字相乘为arr的个数
arr1 = np.reshape(arr, [3, 3])
print(arr1)
# flat为迭代器,可通过循环遍历数组
for i in arr1.flat:
print(i)
# 返回拷贝数组,不修改原来的数组
arr2 = arr.flatten()
arr2 = arr2.reshape(3, 3)
print(arr)
print(arr2)
#平铺数组,不修改原来的数组
arr3 = arr2.ravel()
print(arr3)
print(arr2)
#翻转数组,不修改原来的数组
arr4 = np.transpose(arr2)
print(arr4)
print(arr2)
#转置数组,不修改原来的数组
arr5 = arr2.T
print(arr5)
print(arr2)
#连接数组
#numpy.concatenate 函数用于沿指定轴连接!!相同形状!!的两个或多个数组
arr6 = np.concatenate((arr1, arr5), axis=1)
print(arr6)
#分割数组,indices_or_sections必须能划分为等量的份数
arr7 = np.split(arr6,indices_or_sections=3,axis=0)
print(arr7)
#hsplit指定要返回的相同形状的数组数量来拆分原数组。只能水平分割
arr8 = np.hsplit(arr6,2)
print(arr8)
#vsplit指定要返回的相同形状的数组数量来拆分原数组。只能垂直分割
arr9 = np.vsplit(arr6,3)