学习《利用python进行数据分析》笔记
import numpy as np
data = {i:np.random.randn() for i in range(7)}
data
{0: 1.6300736561683242,
1: 0.9853795329481175,
2: -0.16510852115187846,
3: 0.5301776865167741,
4: 0.3563732455708549,
5: -0.918866001709621,
6: -0.43477482107712045}
np.random.randn()#无参数时,返回单个数据。
1.2029040869143057
np.random.randn(2,4)#返回值为指定维度的array,具有标准正态分布
array([[ 0.64449731, 1.46180684, 2.09259362, 2.21036766],
[-0.24963167, -1.31347591, -0.67127677, 1.10713686]])
def add_numbers(a,b):
"""
Add two numbers together
Returns
-------
the_sum:type of arguments
"""
return a+b
#可显示docstring
add_numbers?
#显示该函数的源代码
add_numbers??
#列出NumPy顶级命名空间中含有load的所有函数
np.*load*?
#通过%run命令运行.py脚本。之后这个脚本内定义的函数都可以在下面使用
%run chap2_ex1.py
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b1SmhH0d-1639818128342)(output_9_0.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3vapBlX8-1639818128344)(output_9_1.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OFRXO9Vp-1639818128346)(output_9_2.png)]
%paste
%cpaste
#Ipython 5.0以后都被取消了,直接复制粘贴即可
UsageError: Line magic function `%paste` not found.
a = np.array([[1,1],[1,1]])
b = np.array([[1,0],[0,1]])
np.dot(a,b)#矩阵乘法
array([[1, 1],
[1, 1]])
a
array([[1, 1],
[1, 1]])
b
array([[1, 0],
[0, 1]])
a*b#对应元素相乘
array([[1, 0],
[0, 1]])
#%timeit检测任意python语句的执行时间
%timeit np.dot(a,b)
1.33 µs ± 19.3 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
'a' in dir()#判断变量是否存在
True
#这条命令把变量移除了
%reset -f
'a' in dir()
False
%magic
#集成matplotlib
import matplotlib.pyplot as plt
from pylab import *
Using matplotlib backend: <object object at 0x0000022CF0C75EA0>
Populating the interactive namespace from numpy and matplotlib
img = plt.imread('夏目.jpg')
imshow(img)
<matplotlib.image.AxesImage at 0x21ef95a1ab0>
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H9QxBpML-1639818128347)(output_23_1.png)]
#cumsum()累加,就是[1,2,3]输出[1,3,6]
plot(randn(1000).cumsum())
[<matplotlib.lines.Line2D at 0x21ef9667d90>]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SEHBkwqY-1639818128348)(output_24_1.png)]
#测试代码的执行时间(选出以foo开头的字符串)
strings = ['foo','foobar','baz','qux','python','Guido Van Rossum']*100000
method1 = [x for x in strings if x.startswith('foo')]
method2 = [x for x in strings if x[:3] == 'foo']
%timeit [x for x in strings if x.startswith('foo')]
%timeit [x for x in strings if x[:3] == 'foo']
63.8 ms ± 1.42 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
51.6 ms ± 488 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
from numpy.linalg import eigvals
def run_experiment(niter=100):
K = 100
results = []
for _ in range(niter):
mat = np.random.randn(K,K)
#eigvals求解特征值
max_eigenvalue = np.abs(eigvals(mat)).max()
results.append(max_eigenvalue)
return results
some_results = run_experiment()
print('Largest one we saw : %s' % np.max(some_results))
Largest one we saw : 11.804861499836456
def add_and_sum(x,y):
added = x+y
summed = added.sum(axis=1)
return summed
def call_function():
x = np.random.randn(1000,1000)
y = np.random.randn(1000,1000)
return add_and_sum(x,y)
#逐行分析函数性能(没装好line_profile)
%lprun -f add_and_sum -f call_function call_function()
UsageError: Line magic function `%lprun` not found.
~~```python
```python