Python数据分析的案例。。

匿名 (未验证) 提交于 2019-12-02 22:11:45

本文来源于数据《Python数据分析》动物书 。。

分享一下电子版本的下载地址:

下面开始numpy的学习:
# coding: utf-8

# In[10]:
import numpy as np

arr1 = np.array([[[1,2,3], [3,4,5]], [[5,6,7], [7,8,9]]])

print(arr1[1])
print("-----------------")
old_value = arr1[0].copy()

print(arr1)
print("+++++++++++++++++")

print(arr1)


# In[36]:


from numpy.random import randn
names = np.array(['bob', 'bob', 'will', 'joy', 'will', 'tom', 'jeery'])
data = randn(7, 4)


# print(names[:2])
print("============")
# 基于前面的额布尔数组来利用字符串进行检索


print(data)


# In[42]:


names = np.array(['bob', 'bob', 'will', 'joy', 'will', 'tom', 'jeery'])

print(mask)

data = randn(7, 4)
print(data)


data[data < 0] = 0
print(data)


print(data)


# In[45]:



arr = np.empty((8, 4))
for i in range(8):


# 以特定的顺序来获取子序列
# 给数组穿进去一个序列

# 使用负数索引的话,则将会从末尾开始检索的


# In[51]:



arr = np.arange(32).reshape((8,4))
print(arr)
print("==========")

# 但是我们希望返回的额结果吗能是矩阵的形式

#返回是一个矩阵的区域
"""
想要返回矩阵块的第二种方法的操作

花式索引的操作是对数据复制到新的数组中的

"""
print(arr[np.ix_([1, 3 ,2, 5], [3, 2,1])]) #返回的结果就是4 * 3


# In[13]:


# 数组的转置操作
import numpy as np
arr = np.arange(15).reshape((3,5))

from numpy.random import randn
'''
randn(d0, d1,...dn) 函数返回结果是一个数或者一组样本, 这些数据具有标准正太分布

'''

print(arr1)

# 矩阵的内积操作


arr2 = np.arange(16).reshape((2,2,4))
print(arr2)
print("-------------------")
arr3 = arr2.transpose((1,0,2))
# print(arr3)

# 利用一个方法进行转置操作 swapaxes
arr5 = arr2.swapaxes(0, 1)
print(arr5)


# In[11]:


import numpy as np
from numpy.random import randn
points = np.arange(-5, 5, 0.01)
xs, ys = np.meshgrid(points, points)
# print(ys)
# print(xs)
import matplotlib.pyplot as plt

# z = x^2 + y^2
z = np.sqrt(xs ** 2 +ys ** 2)
plt.imshow(z, cmap=plt.cm.gray); plt.colorbar()
plt.title('Image plot of $\sqrt{x^2 + y^2}$ for a grid of value')


# In[ ]:


# 将条件标书转化为数组运算
import numpy as np
import matplotlib.pyplot as plt
xarr = np.array([1.2, 1.23, 1.4, 3.4])
yarr = np.array([2.1, 3.2, 4.5, 5.6])
cond = np.array([True, False, True, False])
# 现在我们的需求是,当cond里面值为true的话,我们选xarr里面的值,当值为false的话,我们选择yarr的值
result = [


]
print()


# In[8]:


import numpy as np
from numpy.random import randn

arr = randn(4, 4)
print(arr)
# 下面的where表达式可以将大于0的数据替换成2 小于0 的替换成-2
np.where(arr > 0, 2, -2)
# 现在我们只是想要把大于0的替换了
np.where(arr> 0, 2 , arr)

cond1 = np.array([True, False, True, True])
cond2 = np.array([False, False, True, True])
result = []
for i in range(4):








for i in result:





# In[19]:


arr1 = np.random.randn(5,4)

# 求均值
print(arr1.mean())

# 下面是不进行聚合的函数的操作
arr3 = np.array([[0,1,2], [3,4,5], [5,6,7]])
print(arr3.cumsum(1)) # 从上往下逐行进行累加


# In[22]:


# 用于布尔数组的操作函数
arr = randn(100)

bools = np.array([False, True, False, True])


# In[33]:


# 排序的操作 对于一维数组的排序
arr = randn(100)
arr.sort()
# print(arr)



arr1 = randn(5,3)


print(arr1)

# numpy里面的数组去重操作
names = np.array(['bob', 'jerry', 'bob', 'tom'])

# python里面的等价的去重操作

# python 里面判断一个数是否在数组里面的操作 或者是一个数组中的值是否在另外一个数组里面返回结果的是boolean的值
values = np.array([6,0,0,3,4,5])
arr2 = np.in1d(values, [1,2,3])


# In[34]:


# 用于数组的 文件的输出和输入的操作

arr = range(10)
np.save('some_array', arr)


# In[36]:


arr = np.load('some_array.npy')
print(arr)


np.savez('array_archive.npz', a=arr, b = arr)


# In[37]:



# In[43]:


# 存取文本的数据的操作
#-*- coding:utf-8 -*-

arr = np.loadtxt('C:/Users/rocky/Desktop/array.txt', delimiter=',')
print(arr)
np.savetxt('d:/aaa.txt', arr, delimiter='|')


# In[59]:


# 线性代数运算
x = np.array([[1., 2., 3.],[4., 5., 6.]])
# print(x.shape)

# print(np.dot(x, np.ones(3)).shape)


from numpy.linalg import inv, qr
X = randn(4,4)
Y = randn(4, 3)
mat = X.T.dot(X)
# print(mat)


print(mat.dot(inv(mat)))
# QR分解
q,r = qr(mat)
print(q)


# In[ ]:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!