import numpy as np
#1.数组的创建
arr = np.array([1, 2, 3, 4, 5])
print(arr)
print(type(arr))
arr = np.array([[1, 2, 3, 4, 5],[ 2, 3, 4, 5, 6]])
print(arr)
print(type(arr))
print("数组形状", arr.shape)# (numpy.ndarray).属性/内部变量
# 2.索引和切片
print(arr[0])
print(arr[0:3])
print(arr[1][2])
# 3.运算 +-*/对应位置上的元素进行
print([1, 2, 3]+[4, 5, 6])
print(np.array([1, 2, 3]) + np.array([4, 5, 6]))
print(np.array([1, 2, 3]) * np.array([4, 5, 6]))
# 4.数组形状操作
arr = np.array([[1, 2, 3], [4, 5, 6], [5, 6, 7], [7, 8, 9]])
print(arr.shape)
new_arr = arr.reshape(2, 6)
print(new_arr, "新的数组形状是", new_arr.shape)
new_arr_T = new_arr.transpose()
print(new_arr_T, "新的数组的的转置的形状是", new_arr_T.shape)
# 5. 进阶使用 线性代数 统计
arr1 = np.array([1, 2, 3])
arr2 = np.array([1, 2, 3])
arr1_dot_arr2 = np.dot(arr1, arr2)
print(arr1_dot_arr2)
arr = np.array([[1, 2, 3], [4, 5, 6], [5, 6, 7], [7, 8, 9]])
print("数组的平均值", np.mean(arr))
print("数组的最大值", np.max(arr))
print("数组的最小值", np.min(arr))
print("数组的排序", np.sort(arr)) #numpy 的函数
print("数组的标准差", np.std(arr))
print("数组的排序", np.sort(arr.reshape(-1))) #(-1)表示一行的数组
print(arr > 10) # 应位置每一个元素进行对比
print(arr[arr > 5]) # 筛选
print(arr[(arr > 5) & (arr < 10)]) #&表示and
print(arr[(arr > 5) | (arr < 10)]) #|表示or
# 保存与导入
# npy
# np.save("arr", arr) 保存
"""
arr = np.load("arr.npy") # 导入
print(arr)
"""
from numpy import *
nums=random.randint(1,101,(4,4)) #创建一个随机数组
print(nums)
print(nums[nums< 10])
print("数组的和为:",(np.mean(nums)) * 16)
print("数组的和为:",(np.sum(nums))
补充:
randint(n,m)产生的是一个n*m维的矩阵,矩阵的元素或者是0或者是1,是随机的。
如果想产生一个范围的数,可以设置一个区间,如randint(2,3,[1 6]),就是产生一个2*3随机矩阵,这个矩阵的元素是区间[1 6]的随机数。