numpy快速而高效的原因是底层的c代码,这比使用python进行数组的操作要快上几百倍,并且随着数据量级的上升而上升。
本文中整理了一些可以解决常见问题的主要的numpy函数。
1、创建数组numpy.array:创建新的numpy数组
# create an array using np.array() arr = np.array([1, 2, 3, 4, 5]) print(arr) ouput: [1 2 3 4 5]numpy.zeros:创建一个以零填充的数组。
# create a 2-dimensional array of zeros arr = np.zeros((3, 4)) [[0. 0. 0. 0.] [0. 0. 0. 0.] [0. 0. 0. 0.]]类似的还有numpy.ones:创建一个都是1的数组 / numpy.empty:在不初始化数组元素的情况下创建数组。
使用numpy.random:生成随机数组的函数。
# generate a random integer between 0 and 9 rand_int = np.random.randint(10) print(rand_int)numpy.linspace:在指定范围内生成均匀间隔的数字。
# generate an array of 5 values from 0 to 10 (inclusive) arr = np.linspace(0, 10, 5) # print the array print(arr) [ 0. 2.5 5. 7.5 10. ]numpy.range:用间隔的值创建数组。
# generate an array from 0 to 10 (exclusive) with step size 1 arr = np.arange(0, 10, 2) # print the array print(arr) [1 3 5 7 9]2、查看数组信息numpy.shape:返回一个表示数组形状的元组。
numpy.ndim:返回数组的维度数。
numpy.dtype:获取数组中元素的数据类型。可以是int型,float型,bool型等等。
3、数组操作函数numpy.reshape:改变数组的形状。
# create a 1-dimensional array arr = np.array([1, 2, 3, 4, 5, 6]) # reshape the array to a 2x3 matrix reshaped_arr = np.reshape(arr, (2, 3)) [[1 2 3] [4 5 6]]numpy.transpose:用于排列数组的维度。它返回一个轴调换后的新数组。
# create a 2-dimensional array arr = np.array([[1, 2, 3], [4, 5, 6]]) # transpose the array transposed_arr = np.transpose(arr) [[1 4] [2 5] [3 6]]numpy.concatate:沿现有轴连接数组。
# create two 1-dimensional arrays arr1 = np.array([1, 2, 3]) arr2 = np.array([4, 5, 6]) # concatenate the arrays along axis 0 (default) concatenated_arr = np.concatenate((arr1, arr2)) [1 2 3 4 5 6]numpy.split:分割数据,numpy.resize:改变数组的形状和大小。
numpy.vstack:将多个数组垂直堆叠以创建一个新数组。
# create two 1-dimensional arrays arr1 = np.array([1, 2, 3]) arr2 = np.array([4, 5, 6]) # vertically stack the arrays stacked_arr = np.vstack((arr1, arr2)) [[1 2 3] [4 5 6]]numpy.hstack:与vstack类似,但是是水平堆叠数组。
4、数学函数numpy.sum:计算数组元素的和。
numpy.mean:计算数组的算术平均值。
numpy.max:返回数组中的最大值。
numpy.min:返回数组中的最小值。
numpy.abs:计算元素的绝对值。
numpy.exp:计算所有元素的指数。
numpy.subtract: 对两个数组的对应元素进行减法运算。
numpy.multiply: 对两个数组的对应元素进行乘法运算。
numpy.divide: 对两个数组的对应元素进行除法运算。
numpy.sin: 计算数组中每个元素的正弦值。
numpy.cos: 计算数组中每个元素的余弦值。
numpy.log: 计算数组中每个元素的自然对数(以e为底的对数)。
5、统计函数numpy.std:计算数组的标准差。
# create a 1-dimensional array arr = np.array([1, 2, 3, 4, 5]) # compute the standard deviation of the array std = np.std(arr) 1.4142135623730951numpy.var:计算数组的方差。
numpy.histogram:计算一组数据的直方图。
numpy.percentile:计算数组的第n个百分位数。它返回低于给定百分比的数据的值。
data = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) # calculate the 50th percentile (median) of the data median = np.percentile(data, 50) # calculate the 25th and 75th percentiles (quartiles) of the data q1 = np.percentile(data, 25) q3 = np.percentile(data, 75) median: 5.5 q1: 3.25 q3: 7.75numpy.corcoef:计算两个数组之间的相关系数。numpy.mean: 计算数组元素的平均值。numpy.median: 计算数组元素的中位数。
numpy.random.rand:在区间[0,1]内从均匀分布生成随机数数组
# generate a 1-dimensional array of random numbers random_array = np.random.rand(5) [0.35463311 0.67659889 0.5865293 0.77127035 0.13949178]numpy.random.normal:从正态(高斯)分布生成随机数
# generate a random number from a normal distribution random_number = np.random.normal() -0.65327852852056656、线性代数函数numpy.dot:计算两个数组的点积。
# create two arrays a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) # compute the dot product of the arrays dot_product = np.dot(a, b) 32numpy.linalg.inv:计算一个方阵的逆, numpy.linalg.eig:一个方阵的特征值和特征向量。numpy.linalg.solve:求解一个线性方程组。
7、排序函数numpy.sort:沿指定轴返回数组的排序副本
# create a 2d array arr = np.array([[3, 1, 5], [2, 4, 6]]) # sort the array along the second axis (columns) sorted_arr = np.sort(arr, axis=1) [[1 3 5] [2 4 6]]numpy.argsort:返回按升序对数组排序的索引
# create an array arr = np.array([3, 1, 5, 2, 4]) # get the indices that would sort the array sorted_indices = np.argsort(arr) [1 3 0 4 2]8、其他一些高级的函数numpy.unique:在数组中查找唯一的元素。
arr = np.array([2, 1, 3, 2, 1, 4, 5, 4]) # get the unique elements of the array unique_values = np.unique(arr) [1 2 3 4 5]numpy.fft:傅里叶变换的函数。
numpy.ma:供对掩码数组的支持。
numpy.ma.array:从现有的数组或序列创建一个掩码数组。numpy.ma.masked_array:从现有数组和掩码中创建一个掩码数组。numpy.ma.mask:表示掩码数组中的掩码值。numpy.ma.masked_invalid:屏蔽数组中无效的(nan, inf)元素。numpy.ma.masked_greate, numpy.ma.masked_less:掩码大于或小于给定值的元素。arr = np.array([1, 2, 3, np.nan, 5]) # create a masked array by masking the invalid values masked_arr = ma.masked_invalid(arr) [1 2 3 5]numpy.apply_along_axis:沿着数组的特定轴应用函数。
numpy.wheres:一个条件函数,根据给定条件返回数组中满足条件的元素的索引或值。
condition = np.array([true, false, true, false]) # create two arrays array_true = np.array([1, 2, 3, 4]) array_false = np.array([5, 6, 7, 8]) result = np.where(condition, array_true, array_false) [1 6 3 8]以上就是numpy最经常被使用的函数,希望对你有所帮助。
TL43X分流型基准电压源简介
使用电感降低噪声的注意点:串扰、GND线反弹噪声
2020上半年DDoS攻击方式发生重大变化,攻击数量上升且复杂
plc通讯有哪些类型
华为mate60pro价格官网报价 华为mate60支持5g网络吗
这8个NumPy函数可以解决90%的常见问题
创想焊缝跟踪适配大牛机器人 实时检测各种焊缝 提升焊接质量和效率
指静脉识别的发展空间还有多大
一加5评测:性能爆表,最值得期待的新机表现出众
5G换机潮为消费电子产业链带来新生机,有望解救手机厂商于水火
日本企业开发出了安全的5G移动网络和无人机技术
微软亚洲互联网工程院NLP团队重磅推出开源项目NeuronBlocks
游侠汽车宣布完成B+轮3.5亿美金融资
电气工作原理图及其符号所表示的含义
三星计划在西安扩大闪存产能 未来三年投70亿美元
进气压力传感器坏症状
逆变器的工作原理
aigo国民好物高速足容固态硬盘P3000全面满足用户需求
美国科技巨头在智能家居领域的博弈证明了该市场的潜力
主打外形、配色!三星S8“扒光”式现身:要卖6000元