学习笔记,仅供参考,觉得哪里不错就记哪里
学习书目:《python编程从数据分析到数据编程》–朝乐门;
参考自:numpy.random.randn()与rand()的区别;Python numpy.full函数方法的使用
输入:
import random #设置随机种子 random.seed(3) #生成一个[-10, 10]之间的随机浮点数,并保留2位小数 round(random.uniform(-10, 10), 2) #生成[1, 100]之间的随机整数 random.randint(1, 100) #生成[0.0, 1.0)之间的随机浮点数 random.random()输出:
-5.24 70 0.13042279608514273输入:
import numpy as np #设置随机种子 rand = np.random.RandomState(10) #生成3*4的随机数组,范围就是[0,10)内的整数 #生成在半开半闭区间[low,high)上离散均匀分布的整数值 rand.randint(0, 10, (3, 4)) #生成[0, 100]的随机数组 #以给定的形状创建一个数组,并在数组中加入在[0,1]之间均匀分布的随机样本。 rand.rand(10)*100 #生成等距数列 np.linspace(0, 10, 10) np.linspace(0, 10, 9)输出:
array([[9, 4, 0, 1], [9, 0, 1, 8], [9, 0, 8, 6]]) array([ 68.53598184, 95.33933462, 0.39482663, 51.21922634, 81.26209617, 61.25260668, 72.17553174, 29.18760682, 91.77741225, 71.45757834]) array([ 0. , 1.11111111, 2.22222222, 3.33333333, 4.44444444, 5.55555556, 6.66666667, 7.77777778, 8.88888889, 10. ]) array([ 0. , 1.25, 2.5 , 3.75, 5. , 6.25, 7.5 , 8.75, 10. ])语法:
numpy.full(shape, fill_value, dtype=None, order='C') 参数解释 参数含义shape参数值为整数或整数序列,新数组的形态,单个值代表一维,参数传元组,元组中元素个数就代表是几维,例如, (2, 3) or 2.fill_value参数值为标量(无向量),表示填充数组的值dtype参数值为字符串型数据,表示填充数组的数据类型,默认值为Noneorder参数值为可选项{‘C’, ‘F’},,在内存中以行为主(C风格)或列为主(Fortran风格)连续(行或列)顺序存储多维数据。 举个例子输入:
np.full((2, 3), 5, 'int64', 'C')输出:
array([[5, 5, 5], [5, 5, 5]], dtype=int64)输入:
import numpy as np array1 = np.arange(1, 21) id(array1) #查看形状 array1.shape #利用reshape重构,返回另一个新的数组 reArray = array1.reshape(4, 5) reArray.shape id(reArray) #利用resize重构,更改数组本身,即就地修改 array1.resize(5, 4) array1 #转置变换,返回另一个新的数组 array1.swapaxes(0, 1) #将多维数组转换为1维数组,返回另一个新的数组 array1.flatten() #将多维数组转换为嵌套列表,返回另一个新的列表 array1.tolist() #重新设定数组的数据类型,返回另一个新的数组 array1.astype(np.float)输出:
652802545664 (20,) (4, 5) 652802546784 array([[ 1, 2, 3, 4], [ 5, 6, 7, 8], [ 9, 10, 11, 12], [13, 14, 15, 16], [17, 18, 19, 20]]) array([[ 1, 5, 9, 13, 17], [ 2, 6, 10, 14, 18], [ 3, 7, 11, 15, 19], [ 4, 8, 12, 16, 20]]) array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]) [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16], [17, 18, 19, 20]] array([[ 1., 2., 3., 4.], [ 5., 6., 7., 8.], [ 9., 10., 11., 12.], [ 13., 14., 15., 16.], [ 17., 18., 19., 20.]])输入:
import numpy as np array1 = np.array([1, 2, 3, 4, 5, 6, 7, 8]) #横向拆分, split方法 x1, x2, x3 = np.split(array1, [3, 5]) x1, x2, x3 #纵向拆分 upper, lower = np.vsplit(array1.reshape(2, 4), [1]) #可以试试[0], [2], [3] upper lower输出:
(array([1, 2, 3]), array([4, 5]), array([6, 7, 8])) array([[1, 2, 3, 4]]) array([[5, 6, 7, 8]])输入:
#数据的合并 np.concatenate((upper, lower), axis = 0) #axis = 0表示对列进行拼接,axis = 1表示对行进行拼接 #列拼接, 列数必须相等 np.vstack([upper, lower]) #行拼接,行数必须相等 np.hstack([upper, lower])输出:
array([[1, 2, 3, 4], [5, 6, 7, 8]]) array([[1, 2, 3, 4], [5, 6, 7, 8]]) array([[1, 2, 3, 4, 5, 6, 7, 8]])输入:
import numpy as np array1 = np.array([1, 2, 3, 4, 5, 6, 7, 8]) #删除某个位置的元素 np.delete(array1, 2) #在某个位置插入特定元素 np.insert(array1, 1, 10)输出:
array([1, 2, 4, 5, 6, 7, 8]) array([ 1, 10, 2, 3, 4, 5, 6, 7, 8])输入:
import numpy as np array1 = np.array([1, 2, 3, 4, 5, 6, 7, 8]) #判断数组的每个元素是否为缺失值 np.isnan(array1) #判断数组中是否至少有一个缺失值 #any:一个为True则返回True np.any(np.isnan(array1)) #判断数组中是否全都是缺失值 #any:全都为True则返回True np.all(np.isnan(array1))输出:
array([False, False, False, False, False, False, False, False], dtype=bool) False False输入:
import numpy as np array1 = np.array([1, 2, 3, np.nan]) #返回给定轴上的数组元素的和,将非数字(nan)处理为零。 np.nansum(array1) np.sum(array1)输出:
6.0 nan输入:
import numpy as np array1 = np.array([5, 4, 6, 3, 7]) #返回排序结果 np.sort(array1) #返回排序后的index np.argsort(array1) array2 = np.random.randint(0, 10, (3, 4)) array2 #分别对多维数组,按照行(1)和列(0)进行排序 np.sort(array2, axis = 1) np.sort(array2, axis = 0)输出:
array([3, 4, 5, 6, 7]) array([3, 1, 0, 2, 4], dtype=int64) array([[6, 6, 5, 0], [6, 0, 1, 1], [6, 6, 3, 5]]) array([[0, 5, 6, 6], [0, 1, 1, 6], [3, 5, 6, 6]]) array([[6, 0, 1, 0], [6, 6, 3, 1], [6, 6, 5, 5]])