练习使用python-numpy的方法——东北大学大数据班数据挖掘Python基础二(1)
目录
- 实训项目:练习使用numpy的方法。
- (1)用0~19的数字生成(4,5)的数组命名为a,查看a的维度;查看a的轴的个数;查看a元素的总个数;
- (2)创建元素为1,2,3,4的(2,2)的数组 b,查看b中元素类型。
- (3)创建一个全1的(4,4)的数组c;创建一个内容随机的(3,2)数组d,并打印d。
- (4)用0~11的数,创建一个3*4的数组n1,计算每一列的和;计算每一行的最小值。
- (5)生成一个3个元素的数组n2,通过常用函数计算每个元素的平方根;每个元素的标准差。
- (6)生成一个9个(可以从0~8)元素的数组n3,计算每个元素的平方根;取出位置2的元素;取出位置2至5之间的元素。
- (7)随机生成2个3*3的数组n4和n5,将n4和n5进行垂直合并形成n6;将n4和n5进行水平合并形成n7。
- (8)创建一个2行3列的零矩阵命名为z,将z的2行3列的位置值置成1。
- (9)生成4*4的对角矩阵,以[1,2,3,4]为对角线,其他位置用0填充,命名为z1 。
- (10)用0~8的数,创建成`3*3`的矩阵,命名为z2;用随机数,创建`4*4`的矩阵,命名为z3。
- (11)读取iris数据集中的数据。
- (12)获取数据中的花萼长度数据。
- (13)对花萼长度数据进行排序。
- (14)对花萼长度数据进行去重。
- (15)对花萼长度数据进行求和。
- (16)对花萼长度数据进行求均值。
- (17)对花萼长度数据求累计和。
- (18)对花萼长度数据求标准差。
- (19)对花萼长度数据求方差 。
- (20)对花萼长度数据求最大值、最小值。
因为本博客是直接导入markdown文件(jupter写的)生成的,所以会导致分不清代码和输出,如果大家需要清楚的代码和输出,就请下载以下html文件
numpyTrain (1).html
实训项目:练习使用numpy的方法。
(1)用0~19的数字生成(4,5)的数组命名为a,查看a的维度;查看a的轴的个数;查看a元素的总个数;
import numpy as np
a = np.arange ( 20 ).reshape( 4, 5 ) #用0~19的数字生成(4,5)的数组命名为a
a
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19]])
print(a.ndim) #查看a的维度
2
print(a.shape) #查看a的轴的个数
(4, 5)
print(a.size) #查看a元素的个数
20
(2)创建元素为1,2,3,4的(2,2)的数组 b,查看b中元素类型。
b = np.arange(1,5,1).reshape(2,2) #创建元素为1,2,3,4的(2,2)的数组 b
b
array([[1, 2],
[3, 4]])
print(a.dtype) #查看b中元素类型。
int32
(3)创建一个全1的(4,4)的数组c;创建一个内容随机的(3,2)数组d,并打印d。
c = np.ones((4,4)) #创建一个全1的(4,4)的数组c
c
array([[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]])
d = np.random.random((3,2)) #创建一个内容随机的(3,2)数组d,并打印d。
d
array([[0.71767307, 0.11208135],
[0.21606005, 0.13145117],
[0.29271669, 0.72628356]])
(4)用0~11的数,创建一个3*4的数组n1,计算每一列的和;计算每一行的最小值。
n1=np.arange(12).reshape(3,4) #用0~11的数,创建一个3*4的数组n1
n1
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
n1.sum(axis = 0)
array([12, 15, 18, 21])
n1.sum(axis = 0) #计算每一列的和
array([12, 15, 18, 21])
n1.min(axis = 1) #计算每一行的最小值
array([0, 4, 8])
(5)生成一个3个元素的数组n2,通过常用函数计算每个元素的平方根;每个元素的标准差。
n2 = np.arange(3)
n2
array([0, 1, 2])
np.sqrt(n2)
array([0. , 1. , 1.41421356])
np.std(n2)
0.816496580927726
(6)生成一个9个(可以从0~8)元素的数组n3,计算每个元素的平方根;取出位置2的元素;取出位置2至5之间的元素。
n3 = np.arange(9)
np.sqrt(n3)
array([0. , 1. , 1.41421356, 1.73205081, 2. ,
2.23606798, 2.44948974, 2.64575131, 2.82842712])
n3[2]
2
n3[2:5]
array([2, 3, 4])
(7)随机生成2个3*3的数组n4和n5,将n4和n5进行垂直合并形成n6;将n4和n5进行水平合并形成n7。
n4 = np.random.random((3,3))
n4
array([[0.58871828, 0.48773276, 0.67724231],
[0.67048252, 0.94934156, 0.6801531 ],
[0.84079075, 0.14217763, 0.88709803]])
n5 = np.random.random((3,3))
n5
array([[0.09813402, 0.96212036, 0.10156096],
[0.9481917 , 0.85237646, 0.57594119],
[0.73069884, 0.40628812, 0.65765892]])
n6 = np.concatenate((n4,n5),axis = 0) #将n4和n5进行垂直合并形成n6
n6 #n1.sum(axis = 0)
array([[0.58871828, 0.48773276, 0.67724231],
[0.67048252, 0.94934156, 0.6801531 ],
[0.84079075, 0.14217763, 0.88709803],
[0.09813402, 0.96212036, 0.10156096],
[0.9481917 , 0.85237646, 0.57594119],
[0.73069884, 0.40628812, 0.65765892]])
n7 = np.concatenate((n4,n5),axis = 1) #将n4和n5进行水平合并形成n7。
n7
array([[0.58871828, 0.48773276, 0.67724231, 0.09813402, 0.96212036,
0.10156096],
[0.67048252, 0.94934156, 0.6801531 , 0.9481917 , 0.85237646,
0.57594119],
[0.84079075, 0.14217763, 0.88709803, 0.73069884, 0.40628812,
0.65765892]])
(8)创建一个2行3列的零矩阵命名为z,将z的2行3列的位置值置成1。
z = np.zeros((2,3)) #创建一个2行3列的零矩阵命名为z,
z
array([[0., 0., 0.],
[0., 0., 0.]])
z[1,2] = 1 #将z的2行3列的位置值置成1
z
array([[0., 0., 0.],
[0., 0., 1.]])
(9)生成4*4的对角矩阵,以[1,2,3,4]为对角线,其他位置用0填充,命名为z1 。
z1 = np.diag((1,2,3,4))
z1
array([[1, 0, 0, 0],
[0, 2, 0, 0],
[0, 0, 3, 0],
[0, 0, 0, 4]])
(10)用0~8的数,创建成3*3
的矩阵,命名为z2;用随机数,创建4*4
的矩阵,命名为z3。
z2=np.arange(9).reshape(3,3)
z2
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
z3=np.random.random((4,4))
z3
array([[0.7130355 , 0.26891352, 0.73178636, 0.45904864],
[0.81441513, 0.9694334 , 0.02845651, 0.59227427],
[0.6629943 , 0.83704111, 0.14278264, 0.50956436],
[0.26446431, 0.48155616, 0.00389545, 0.58615543]])
(11)读取iris数据集中的数据。
import pandas as pd
df_iris =pd.read_csv("C:\\Users\\zzh\\Desktop\\dataMiningExperment\\exp2\\data\\iris.csv")
df_iris.head()
Sepal.Length | Sepal.Width | Petal.Length | Petal.Width | Species | |
---|---|---|---|---|---|
0 | 5.1 | 3.5 | 1.4 | 0.2 | setosa |
1 | 4.9 | 3.0 | 1.4 | 0.2 | setosa |
2 | 4.7 | 3.2 | 1.3 | 0.2 | setosa |
3 | 4.6 | 3.1 | 1.5 | 0.2 | setosa |
4 | 5.0 | 3.6 | 1.4 | 0.2 | setosa |
(12)获取数据中的花萼长度数据。
iris_sepal_length=df_iris["Sepal.Length"] #获取数据中的花萼长度数据。
type(iris_sepal_length)
pandas.core.series.Series
iris_sepal_length.head()
0 5.1
1 4.9
2 4.7
3 4.6
4 5.0
Name: Sepal.Length, dtype: float64
iris_sepal_length=np.array(iris_sepal_length) #从pandas.core.series.Series转化为numpy.ndarray
type(iris_sepal_length)
numpy.ndarray
iris_sepal_length
array([5.1, 4.9, 4.7, 4.6, 5. , 5.4, 4.6, 5. , 4.4, 4.9, 5.4, 4.8, 4.8,
4.3, 5.8, 5.7, 5.4, 5.1, 5.7, 5.1, 5.4, 5.1, 4.6, 5.1, 4.8, 5. ,
5. , 5.2, 5.2, 4.7, 4.8, 5.4, 5.2, 5.5, 4.9, 5. , 5.5, 4.9, 4.4,
5.1, 5. , 4.5, 4.4, 5. , 5.1, 4.8, 5.1, 4.6, 5.3, 5. , 7. , 6.4,
6.9, 5.5, 6.5, 5.7, 6.3, 4.9, 6.6, 5.2, 5. , 5.9, 6. , 6.1, 5.6,
6.7, 5.6, 5.8, 6.2, 5.6, 5.9, 6.1, 6.3, 6.1, 6.4, 6.6, 6.8, 6.7,
6. , 5.7, 5.5, 5.5, 5.8, 6. , 5.4, 6. , 6.7, 6.3, 5.6, 5.5, 5.5,
6.1, 5.8, 5. , 5.6, 5.7, 5.7, 6.2, 5.1, 5.7, 6.3, 5.8, 7.1, 6.3,
6.5, 7.6, 4.9, 7.3, 6.7, 7.2, 6.5, 6.4, 6.8, 5.7, 5.8, 6.4, 6.5,
7.7, 7.7, 6. , 6.9, 5.6, 7.7, 6.3, 6.7, 7.2, 6.2, 6.1, 6.4, 7.2,
7.4, 7.9, 6.4, 6.3, 6.1, 7.7, 6.3, 6.4, 6. , 6.9, 6.7, 6.9, 5.8,
6.8, 6.7, 6.7, 6.3, 6.5, 6.2, 5.9])
(13)对花萼长度数据进行排序。
iris_sepal_length.sort()
iris_sepal_length
array([4.3, 4.4, 4.4, 4.4, 4.5, 4.6, 4.6, 4.6, 4.6, 4.7, 4.7, 4.8, 4.8,
4.8, 4.8, 4.8, 4.9, 4.9, 4.9, 4.9, 4.9, 4.9, 5. , 5. , 5. , 5. ,
5. , 5. , 5. , 5. , 5. , 5. , 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,
5.1, 5.1, 5.2, 5.2, 5.2, 5.2, 5.3, 5.4, 5.4, 5.4, 5.4, 5.4, 5.4,
5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.5, 5.6, 5.6, 5.6, 5.6, 5.6, 5.6,
5.7, 5.7, 5.7, 5.7, 5.7, 5.7, 5.7, 5.7, 5.8, 5.8, 5.8, 5.8, 5.8,
5.8, 5.8, 5.9, 5.9, 5.9, 6. , 6. , 6. , 6. , 6. , 6. , 6.1, 6.1,
6.1, 6.1, 6.1, 6.1, 6.2, 6.2, 6.2, 6.2, 6.3, 6.3, 6.3, 6.3, 6.3,
6.3, 6.3, 6.3, 6.3, 6.4, 6.4, 6.4, 6.4, 6.4, 6.4, 6.4, 6.5, 6.5,
6.5, 6.5, 6.5, 6.6, 6.6, 6.7, 6.7, 6.7, 6.7, 6.7, 6.7, 6.7, 6.7,
6.8, 6.8, 6.8, 6.9, 6.9, 6.9, 6.9, 7. , 7.1, 7.2, 7.2, 7.2, 7.3,
7.4, 7.6, 7.7, 7.7, 7.7, 7.7, 7.9])
(14)对花萼长度数据进行去重。
iris_sepal_length=np.unique(iris_sepal_length)
iris_sepal_length
array([4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5. , 5.1, 5.2, 5.3, 5.4, 5.5,
5.6, 5.7, 5.8, 5.9, 6. , 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8,
6.9, 7. , 7.1, 7.2, 7.3, 7.4, 7.6, 7.7, 7.9])
(15)对花萼长度数据进行求和。
iris_sepal_length.sum()
210.39999999999998
(16)对花萼长度数据进行求均值。
np.mean(iris_sepal_length)
6.011428571428571
(17)对花萼长度数据求累计和。
np.cumsum(iris_sepal_length)
array([ 4.3, 8.7, 13.2, 17.8, 22.5, 27.3, 32.2, 37.2, 42.3,
47.5, 52.8, 58.2, 63.7, 69.3, 75. , 80.8, 86.7, 92.7,
98.8, 105. , 111.3, 117.7, 124.2, 130.8, 137.5, 144.3, 151.2,
158.2, 165.3, 172.5, 179.8, 187.2, 194.8, 202.5, 210.4])
(18)对花萼长度数据求标准差。
np.std(iris_sepal_length)
1.0289443768310533
(19)对花萼长度数据求方差 。
np.var(iris_sepal_length)
1.0587265306122449
(20)对花萼长度数据求最大值、最小值。
np.max(iris_sepal_length),np.min(iris_sepal_length)
(7.9, 4.3)
大家好,我是[爱做梦的子浩](https://blog.csdn.net/weixin_43124279),我是东北大学大数据实验班大三的小菜鸡,非常向往优秀,羡慕优秀的人,已拿两个暑假offer,欢迎大家找我进行交流😂😂😂
这是我的博客地址:[子浩的博客https://blog.csdn.net/weixin_43124279]
——
版权声明:本文为CSDN博主「爱做梦的子浩」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。