目录

简单了解数据分析

  • 数据分析(是把隐藏在一些看似杂乱无章的数据背后的信息提炼出来,总结出所研究对象的内在规律)

数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。
这一过程也是质量管理体系的支持过程。在实用中,数据分析可帮助人们作出判断,以便采取适当行动。
数据分析的数学基础在20世纪早期就已确立,但直到计算机的出现才使得实际操作成为可能,并使得数据分析得以推广。
数据分析是数学与计算机科学相结合的产物。

Python数据分析三剑客(Numpy,Pandas,Matplotlib)

  • NumPy

NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

NumPy 的前身 Numeric 最早是由 Jim Hugunin 与其它协作者共同开发,2005 年,Travis Oliphant 在 Numeric 中结合了另一个同性质的程序库 Numarray 的特色,
并加入了其它扩展而开发了 NumPy。NumPy 为开放源代码并且由许多协作者共同维护开发。 NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含: 一个强大的N维数组对象 ndarray
广播功能函数
整合 C/C++/Fortran 代码的工具
线性代数、傅里叶变换、随机数生成等功能

Numpy常用函数用法大全目录

#Numpy常用函数用法大全目录
A
array 创建一个np数组
arange 返回指定范围内的数组
argmax 返回沿轴axis最大值的索引 B
bincount 返回数组中的值中索引出现的次数 C
copysign 将b中各元素的符号赋值给数组a的对应元素 D
dot 矩阵运算 E
exp e的N次方 F
full 返回给定形状和类型的新数组,填充fill_value G
gradient 返回N维数组的梯度 H
hsplit 通过指定要返回的相同shape的array的数量,或者通过指定分割应该发生之后的列来沿着其横轴拆分原array I
isnan 测试NaN的元素,并将结果作为布尔数组返回 L
log e的指数
linspace 在指定的间隔内返回均匀间隔的数字 M
max 数组中最大的键 R
reshape 不改变数据同时改变数据格式
random.choice 随机分布一个数组
random.randn 返回一个或一组样本,具有标准正态分布 S
sum 每个数组各个键的总和 v
vsplit 沿着垂直轴分割,其分割方式与hsplit用法相同 Z
zeros_like 生成0填充形状和传入数组相同的数组
zeros 返回来一个给定形状和类型的用0填充的数组
  • Pandas

pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,
提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,
它是使Python成为强大而高效的数据分析环境的重要因素之一。
  • Matplotlib

Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。
通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。

简单使用np.array()

  • 安装NumPy pip3 install numpy

  • 一维数组创建

import numpy as np #as np别名方便调用

np.array([1,2,3,4,5])
#执行结果 所有代码使用的是Jupyter Notebook执行,所以没有print
array([1, 2, 3, 4, 5])
  • 二维数组创建

import numpy as np 

np.array([[1,2,3],[4,5,6]])
#执行结果
array([[1, 2, 3],
[4, 5, 6]]) np.array([[1,1.2,3],[4,5,'six']])
#执行结果
array([['1', '1.2', '3'],
['4', '5', 'six']], dtype='<U32')
  • 注意

- numpy默认ndarray的所有元素的类型是相同的
- 如果传进来的列表中包含不同的类型,则统一为同一类型,优先级:str>float>int

使用np的routines函数创建数组

  • np.linspace 等差数列

import numpy as np 

np.linspace(1,100,num=10)
#执行结果
array([ 1., 12., 23., 34., 45., 56., 67., 78., 89., 100.])
  • np.arange 使用步长

import numpy as np 

np.arange(0,100,2)
#执行结果
array([ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32,
34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66,
68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98])
  • np.random.randint 随机数组

# 随机原理
# - 随机因子:表示的是一个无时无刻都在变化的数值(比如时间)
import numpy as np np.random.seed(10)#指定随机因子
np.random.randint(0,100,size=(4,5))
#执行结果 不会变
array([[ 9, 15, 64, 28, 89],
[93, 29, 8, 73, 0],
[40, 36, 16, 11, 54],
[88, 62, 33, 72, 78]]) #np.random.seed(10) 不指定随机因子
np.random.randint(0,100,size=(4,5))
#执行结果 第一次
array([[49, 51, 54, 77, 69],
[13, 25, 13, 92, 86],
[30, 30, 89, 12, 65],
[31, 57, 36, 27, 18]])
#执行结果 第二次
array([[93, 77, 22, 23, 94],
[11, 28, 74, 88, 9],
[15, 18, 80, 71, 88],
[11, 17, 46, 7, 75]])
#执行结果 第三次
array([[28, 33, 84, 96, 88],
[44, 5, 4, 71, 88],
[88, 50, 54, 34, 15],
[77, 88, 15, 6, 85]]) np.random.random(size=(5,3))
#执行结果
array([[0.82110566, 0.15115202, 0.38411445],
[0.94426071, 0.98762547, 0.45630455],
[0.82612284, 0.25137413, 0.59737165],
[0.90283176, 0.53455795, 0.59020136],
[0.03928177, 0.35718176, 0.07961309]])

ndarray N维数组对象

NumPy最重要的一个特点就是其N维数组对象(即ndarray),该对象是一个快速而灵活的大数据集容器,该对象由两部分组成:
- 实际的数据;
- 描述这些数据的元数据;
大部分的数组操作仅仅是修改元数据部分,而不改变其底层的实际数据。数组的维数称为秩,简单来说就是如果你需要获取数组中一个特定元素所需的坐标数,
如a是一个2×3×4的矩阵,你索引其中的一个元素必须给定三个坐标a[x,y,z],故它的维数就是3。而轴可以理解为一种对数组空间的分割,以数组a为例,
如果我们以0为轴,那么a可以看成是一个由两个元素构成的数组,其中每个元素都是一个3×4的数组。 我们可以直接将数组看作一种新的数据类型,就像list、tuple、dict一样,但数组中所有元素的类型必须是一致的,Python支持的数据类型有整型、
浮点型以及复数型,但这些类型不足以满足科学计算的需求,因此NumPy中添加了许多其他的数据类型,如bool、inti、int64、float32、complex64等。
同时,它也有许多其特有的属性和方法。 常用ndarray属性:
dtype 描述数组元素的类型
shape 以tuple表示的数组形状
ndim 数组的维度
size 数组中元素的个数
itemsize 数组中的元素在内存所占字节数
T 数组的转置
flat 返回一个数组的迭代器,对flat赋值将导致整个数组的元素被覆盖
real/imag 给出复数数组的实部/虚部
nbytes 数组占用的存储空间 常用ndarray方法:
reshape(…) 返回一个给定shape的数组的副本
resize(…) 返回给定shape的数组,原数组shape发生改变
flatten()/ravel() 返回展平数组,原数组不改变
astype(dtype) 返回指定元素类型的数组副本
fill() 将数组元素全部设定为一个标量值
sum/Prod() 计算所有数组元素的和/积
mean()/var()/std() 返回数组元素的均值/方差/标准差
max()/min()/ptp()/median() 返回数组元素的最大值/最小值/取值范围/中位数
argmax()/argmin() 返回最大值/最小值的索引
sort() 对数组进行排序,axis指定排序的轴;kind指定排序算法,默认是快速排序
view()/copy() view创造一个新的数组对象指向同一数据;copy是深复制
tolist() 将数组完全转为列表,注意与直接使用list(array)的区别
compress() 返回满足条件的元素构成的数组

ndarray的基本操作

索引

import numpy as np
#准备
arr = np.random.randint(60,120,size=(6,8))
arr
#执行结果 数组
array([[102, 68, 86, 84, 80, 104, 90, 77],
[112, 92, 113, 82, 99, 91, 92, 83],
[ 84, 93, 81, 111, 86, 75, 88, 71],
[114, 101, 77, 111, 67, 73, 91, 64],
[ 90, 101, 73, 73, 92, 84, 107, 96],
[115, 102, 116, 81, 66, 83, 88, 72]]) arr[1] #直结索引取到的是 行
#执行结果
array([112, 92, 113, 82, 99, 91, 92, 83]) arr[1][2]#直结索引再索引 取到的是 某行的某个元素
#执行结果
113 #小结:一维与列表完全一致 多维时同理

切片

#还是沿用上边的数据
array([[102, 68, 86, 84, 80, 104, 90, 77],
[112, 92, 113, 82, 99, 91, 92, 83],
[ 84, 93, 81, 111, 86, 75, 88, 71],
[114, 101, 77, 111, 67, 73, 91, 64],
[ 90, 101, 73, 73, 92, 84, 107, 96],
[115, 102, 116, 81, 66, 83, 88, 72]]) #获取二维数组前两行
arr[0:2]# 直接切片取得是行 取先不取后
#执行结果
array([[102, 68, 86, 84, 80, 104, 90, 77],
[112, 92, 113, 82, 99, 91, 92, 83]]) #获取二维数组前两列
arr[:,0:2]# 应用了逗号的机制,逗号左边为第一个维度(行),右边为第二个维度(列) :代表不对行做操作
#执行结果
array([[102, 68],
[112, 92],
[ 84, 93],
[114, 101],
[ 90, 101],
[115, 102]]) #获取二维数组前两行和前三列数据
arr[0:2,0:3] #逗号 左边行 右边列
#执行结果
array([[102, 68, 86],
[112, 92, 113]]) #将数组的行倒序
arr[::-1]
#执行结果
array([[115, 102, 116, 81, 66, 83, 88, 72],
[ 90, 101, 73, 73, 92, 84, 107, 96],
[114, 101, 77, 111, 67, 73, 91, 64],
[ 84, 93, 81, 111, 86, 75, 88, 71],
[112, 92, 113, 82, 99, 91, 92, 83],
[102, 68, 86, 84, 80, 104, 90, 77]]) #全部倒序
arr[::-1,::-1]
#执行结果
array([[ 72, 88, 83, 66, 81, 116, 102, 115],
[ 96, 107, 84, 92, 73, 73, 101, 90],
[ 64, 91, 73, 67, 111, 77, 101, 114],
[ 71, 88, 75, 86, 111, 81, 93, 84],
[ 83, 92, 91, 99, 82, 113, 92, 112],
[ 77, 90, 104, 80, 84, 86, 68, 102]])

变形 (arr.reshape() 机器学习会用到)

#使用arr.reshape()函数,注意参数是一个tuple!
#准备数据
import numpy as np
arr = np.random.randint(60,120,size=(6,8))
arr
array([[101, 67, 88, 94, 75, 82, 105, 96],
[100, 86, 112, 69, 79, 100, 65, 114],
[ 72, 86, 95, 84, 112, 94, 103, 115],
[ 83, 110, 78, 60, 67, 86, 113, 92],
[ 74, 118, 79, 86, 63, 97, 81, 106],
[112, 118, 83, 105, 72, 78, 94, 88]]) #将数组改成一维数组
arr.reshape((48,))
#执行结果 一个中括号是一维 注意变形元素总数量不能改变,不然会报错
array([101, 67, 88, 94, 75, 82, 105, 96, 100, 86, 112, 69, 79,
100, 65, 114, 72, 86, 95, 84, 112, 94, 103, 115, 83, 110,
78, 60, 67, 86, 113, 92, 74, 118, 79, 86, 63, 97, 81,
106, 112, 118, 83, 105, 72, 78, 94, 88]) #修改数组,不改变维数
arr.reshape((48,1))
#执行结果
array([[101],
[ 67],
[ 88],
[ 94],
[ 75],
[ 82],
[105],
[ 96],
[100],
[ 86],
[112],
[ 69],
[ 79],
[100],
[ 65],
[114],
[ 72],
[ 86],
[ 95],
[ 84],
[112],
[ 94],
[103],
[115],
[ 83],
[110],
[ 78],
[ 60],
[ 67],
[ 86],
[113],
[ 92],
[ 74],
[118],
[ 79],
[ 86],
[ 63],
[ 97],
[ 81],
[106],
[112],
[118],
[ 83],
[105],
[ 72],
[ 78],
[ 94],
[ 88]]) arr.reshape((-1,48))
#执行结果
array([[101, 67, 88, 94, 75, 82, 105, 96, 100, 86, 112, 69, 79,
100, 65, 114, 72, 86, 95, 84, 112, 94, 103, 115, 83, 110,
78, 60, 67, 86, 113, 92, 74, 118, 79, 86, 63, 97, 81,
106, 112, 118, 83, 105, 72, 78, 94, 88]]) arr.reshape((12,-1))#-1可以自动补齐
#执行结果
array([[101, 67, 88, 94],
[ 75, 82, 105, 96],
[100, 86, 112, 69],
[ 79, 100, 65, 114],
[ 72, 86, 95, 84],
[112, 94, 103, 115],
[ 83, 110, 78, 60],
[ 67, 86, 113, 92],
[ 74, 118, 79, 86],
[ 63, 97, 81, 106],
[112, 118, 83, 105],
[ 72, 78, 94, 88]]) arr.reshape((-1,12))
#执行结果
array([[101, 67, 88, 94, 75, 82, 105, 96, 100, 86, 112, 69],
[ 79, 100, 65, 114, 72, 86, 95, 84, 112, 94, 103, 115],
[ 83, 110, 78, 60, 67, 86, 113, 92, 74, 118, 79, 86],
[ 63, 97, 81, 106, 112, 118, 83, 105, 72, 78, 94, 88]]) #将数组改为三维
arr.reshape((2,4,6))
#执行结果
array([[[101, 67, 88, 94, 75, 82],
[105, 96, 100, 86, 112, 69],
[ 79, 100, 65, 114, 72, 86],
[ 95, 84, 112, 94, 103, 115]], [[ 83, 110, 78, 60, 67, 86],
[113, 92, 74, 118, 79, 86],
[ 63, 97, 81, 106, 112, 118],
[ 83, 105, 72, 78, 94, 88]]])

级联 (np.concatenate(),下面图片修改有实际应用)

#一维,二维,多维数组的级联,实际操作中级联多为二维数组 (对一个或多个数组做拼接)

#准备数据
import numpy as np
arr = np.random.randint(60,120,size=(6,8))
arr
array([[101, 67, 88, 94, 75, 82, 105, 96],
[100, 86, 112, 69, 79, 100, 65, 114],
[ 72, 86, 95, 84, 112, 94, 103, 115],
[ 83, 110, 78, 60, 67, 86, 113, 92],
[ 74, 118, 79, 86, 63, 97, 81, 106],
[112, 118, 83, 105, 72, 78, 94, 88]]) np.concatenate((arr,arr),axis=1) # 轴向 0列 1行
#执行效果
array([[101, 67, 88, 94, 75, 82, 105, 96, 101, 67, 88, 94, 75,
82, 105, 96],
[100, 86, 112, 69, 79, 100, 65, 114, 100, 86, 112, 69, 79,
100, 65, 114],
[ 72, 86, 95, 84, 112, 94, 103, 115, 72, 86, 95, 84, 112,
94, 103, 115],
[ 83, 110, 78, 60, 67, 86, 113, 92, 83, 110, 78, 60, 67,
86, 113, 92],
[ 74, 118, 79, 86, 63, 97, 81, 106, 74, 118, 79, 86, 63,
97, 81, 106],
[112, 118, 83, 105, 72, 78, 94, 88, 112, 118, 83, 105, 72,
78, 94, 88]]) #级联需要注意的点: 级联的参数是列表:一定要加中括号或小括号
维度必须相同
形状相符:在维度保持一致的前提下,如果进行横向(axis=1)级联,必须保证进行级联的数组行数保持一致。如果进行纵向(axis=0)级联,
必须保证进行级联的数组列数保持一致。
可通过axis参数改变级联的方向

ndarray的聚合操作

#求和np.sum
arr.sum(axis=None)
#执行结果
4374 #最大最小值:np.max/ np.min
#平均值:np.mean() Function Name NaN-safe Version Description
np.sum np.nansum Compute sum of elements
np.prod np.nanprod Compute product of elements
np.mean np.nanmean Compute mean of elements
np.std np.nanstd Compute standard deviation
np.var np.nanvar Compute variance
np.min np.nanmin Find minimum value
np.max np.nanmax Find maximum value
np.argmin np.nanargmin Find index of minimum value
np.argmax np.nanargmax Find index of maximum value
np.median np.nanmedian Compute median of elements
np.percentile np.nanpercentile Compute rank-based statistics of elements
np.any N/A Evaluate whether any elements are true
np.all N/A Evaluate whether all elements are true
np.power 幂运算

ndarray的排序

np.sort()与ndarray.sort()都可以,但有区别:
- np.sort()不改变输入
- ndarray.sort()本地处理,不占用空间,但改变输入 #准备数据
import numpy as np
arr = np.random.randint(60,120,size=(6,8))
arr
array([[101, 67, 88, 94, 75, 82, 105, 96],
[100, 86, 112, 69, 79, 100, 65, 114],
[ 72, 86, 95, 84, 112, 94, 103, 115],
[ 83, 110, 78, 60, 67, 86, 113, 92],
[ 74, 118, 79, 86, 63, 97, 81, 106],
[112, 118, 83, 105, 72, 78, 94, 88]]) arr.sort(axis=0)#会作业到原始数据中 axis=0对每一列做排序
arr
#执行结果
array([[ 72, 67, 78, 60, 63, 78, 65, 88],
[ 74, 86, 79, 69, 67, 82, 81, 92],
[ 83, 86, 83, 84, 72, 86, 94, 96],
[100, 110, 88, 86, 75, 94, 103, 106],
[101, 118, 95, 94, 79, 97, 105, 114],
[112, 118, 112, 105, 112, 100, 113, 115]]) arr.sort(axis=1)#会作业到原始数据中 axis=0对每一行做排序
arr
#执行结果
array([[ 60, 63, 65, 67, 72, 78, 78, 88],
[ 67, 69, 74, 79, 81, 82, 86, 92],
[ 72, 83, 83, 84, 86, 86, 94, 96],
[ 75, 86, 88, 94, 100, 103, 106, 110],
[ 79, 94, 95, 97, 101, 105, 114, 118],
[100, 105, 112, 112, 112, 113, 115, 118]])

简单使用matplotlib.pyplot获取一个numpy数组,对其进行操作

  • 准备

  • 获取一个numpy数组,简单操作查看,展示图片

# 使用matplotlib.pyplot获取一个numpy数组,数据来源于一张图片
import matplotlib.pyplot as plt img_arr = plt.imread('./part_1/cat.jpg') img_arr.shape#数组形状
#执行结果
(456,730,3) #行,列,颜色,总个数是维度 img_arr.size#数组大小
#执行结果
998640 #多少元素 img_arr.dtype#数组类型
#执行结果
dtype('uint8')#数组类型, uint8是8位无符号整型 img_arr#查看数组
#执行结果 三位数组231, 186, 131前两位数是像素点,后一位是颜色
array([[[231, 186, 131],
[232, 187, 132],
[233, 188, 133],
...,
[100, 54, 54],
[ 92, 48, 47],
[ 85, 43, 44]], [[232, 187, 132],
[232, 187, 132],
[233, 188, 133],
...,
[100, 54, 54],
[ 92, 48, 47],
[ 84, 42, 43]],
#中间省略...
...,
[188, 98, 64],
[188, 95, 62],
[188, 95, 62]]], dtype=uint8) plt.imshow(img_arr)#展示图片
#执行结果 如下图

  • 数组减去某个值,图片发生变化

import matplotlib.pyplot as plt

img_arr = plt.imread('./part_1/cat.jpg')

img_arr.ndim #当前数组维度
#执行结果
3 img_arr-100 #执行结果
array([[[131, 86, 31],
[132, 87, 32],
[133, 88, 33],
...,
[ 0, 210, 210],
[248, 204, 203],
[241, 199, 200]], [[132, 87, 32],
[132, 87, 32],
[133, 88, 33],
...,
[ 0, 210, 210],
[248, 204, 203],
[240, 198, 199]],
#中间省略...
...,
[ 88, 254, 220],
[ 88, 251, 218],
[ 88, 251, 218]]], dtype=uint8) plt.imshow(img_arr - 100)
plt.savefig('./mao.jpg') #保存图片
#执行结果 如下图

  • 将图片进行对称反转操作

import matplotlib.pyplot as plt

img_arr = plt.imread('./part_1/bcy.jpg')
plt.imshow(img_arr[:,::-1,:])
#执行结果如 下图

  • 将图片倒置

plt.imshow(img_arr[::-1,:])
#执行结果如 下图

  • 将图片对称反转并倒置

plt.imshow(img_arr[::-1,::-1])
#执行结果如 下图

  • 将图片对称反转并倒置并修改颜色

plt.imshow(img_arr[::-1,::-1,::-1])
#执行结果如 下图

  • 对原图做剪裁

plt.imshow(img_arr[450:600,95:330])
#执行结果如 下图

  • 对图片进行拼接

arr_3 = np.concatenate((img_arr,img_arr,img_arr),axis=1)
plt.imshow(arr_3)
#执行结果如 下图

arr_3 = np.concatenate((img_arr,img_arr,img_arr),axis=1)#axis=1 轴向 行
arr_9 = np.concatenate((arr_3,arr_3,arr_3),axis=0)#axis=0 轴向 列
plt.imshow(arr_9)
#执行结果如 下图

学习网站

作 者:郭楷丰
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角 推荐一下。您的鼓励是博主的最大动力!
自 勉:生活,需要追求;梦想,需要坚持;生命,需要珍惜;但人生的路上,更需要坚强。带着感恩的心启程,学会爱,爱父母,爱自己,爱朋友,爱他人。

数据分析 之 NumPy的更多相关文章

  1. 利用Python进行数据分析(5) NumPy基础: ndarray索引和切片

    概念理解 索引即通过一个无符号整数值获取数组里的值. 切片即对数组里某个片段的描述. 一维数组 一维数组的索引 一维数组的索引和Python列表的功能类似: 一维数组的切片 一维数组的切片语法格式为a ...

  2. 数据分析入门——numpy类库基础知识

    numpy类库是数据分析的利器,用于高性能的科学计算和数据分析.使用python进行数据分析,numpy这个类库是必须掌握的.numpy并没有提供强大的数据分析功能,而是它提供的ndarray数据结构 ...

  3. 数据分析01 /numpy模块

    数据分析01 /数据分析之numpy模块 目录 数据分析01 /数据分析之numpy模块 1. numpy简介 2. numpy的创建 3. numpy的方法 4. numpy的常用属性 5. num ...

  4. 利用Python进行数据分析(4) NumPy基础: ndarray简单介绍

    一.NumPy 是什么 NumPy 是 Python 科学计算的基础包,它专为进行严格的数字处理而产生.在之前的随笔里已有更加详细的介绍,这里不再赘述. 利用 Python 进行数据分析(一)简单介绍 ...

  5. 数据分析之Numpy基础:数组和适量计算

    Numpy(Numerical Python)是高性能科学计算和数据分析的基础包. 1.Numpy的ndarray:一种多维数组对象 对于每个数组而言,都有shape和dtype这两个属性来获取数组的 ...

  6. Python数据分析之numpy学习

    Python模块中的numpy,这是一个处理数组的强大模块,而该模块也是其他数据分析模块(如pandas和scipy)的核心. 接下面将从这5个方面来介绍numpy模块的内容: 1)数组的创建 2)有 ...

  7. 《利用python进行数据分析》NumPy基础:数组和矢量计算 学习笔记

    一.有关NumPy (一)官方解释 NumPy is the fundamental package for scientific computing with Python. It contains ...

  8. Python数据分析(二): Numpy技巧 (1/4)

    In [1]: import numpy numpy.__version__ Out[1]: '1.13.1' In [2]: import numpy as np  

  9. Python数据分析(二): Numpy技巧 (2/4)

    numpy.pandas.matplotlib(+seaborn)是python数据分析/机器学习的基本工具. numpy的内容特别丰富,我这里只能介绍一下比较常见的方法和属性.   昨天晚上发了第一 ...

随机推荐

  1. docker部署spring boot项目在服务器上

    IDE:idea 工具:docker spring boot:2.0.1 ======================================== 简单记录一下流程,以供参考: 第一步:首先得 ...

  2. hive分区与实际分区文件不匹配导致spark读文件出错的问题解决

    先解释下,由于历史原因导致hive中的看到分区比hdfs中的文件夹不匹配,存在hive中分区数有,实际hdfs中无此文件夹. spark中通过sparkSQL读取hive中的该表时,将会出现异常. 解 ...

  3. pip安装yaml

    1.安装:输入pip install pyyaml或者pip3 install pyyaml 2.检查是否安装成功:输入python

  4. 面试突击(八)——JVM的结构及内存模型,是怎么划分的?

    声明:本文图片均来自网络,我只是进行了选择,利用一图胜千言的力量来帮助自己快速的回忆相关的知识点 0:再上一张Java代码的转换流程图 .java——Java程序员编写,给人看的 .class——Ja ...

  5. 使用PhantomJS报warnings.warn('Selenium support for PhantomJS has been deprecated, please use headless '解决方法

    selenium已经放弃PhantomJS了,建议使用火狐或者谷歌无界面浏览器.使用无界面浏览器Selenium+Headless Firefox Selenium+Headless Firefox和 ...

  6. vue重置表单数据

    Object.assign(this.$data, this.$options.data()) // 全部重置 Object.assign(this.$data.form, this.$options ...

  7. SpringBoot入门-多环境文件配置(二)

    pom.xml <name>springboot-application</name> <description>A project for Spring Boot ...

  8. linux安装nvm和nodejs

    下载nvm包: [root@centos ~]# wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install ...

  9. k8s记录-kubeam部署

    #配置源[kubernetes] name=kubernetes repo baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kuberne ...

  10. Hadoop深入学习之HA

    1. 基本原理 2.x版本中,HDFS架构解决了单点故障问题,即引入双NameNode架构,同时借助共享存储系统来进行元数据的同步,共享存储系统类型一般有几类,如:Shared NAS+NFS.Boo ...