练习使用python-numpy的方法——东北大学大数据班数据挖掘Python基础二(1)

目录

因为本博客是直接导入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)
posted @ 2019-12-03 18:16  爱做梦的子浩  阅读(397)  评论(0编辑  收藏  举报