GithubHelp home page GithubHelp logo

visualize-ml / book1_python-for-beginners Goto Github PK

View Code? Open in Web Editor NEW
4.2K 4.2K 802.0 459.61 MB

Book_1_《编程不难》 | 鸢尾花书:从加减乘除到机器学习;请多多批评指正!

Jupyter Notebook 99.96% Python 0.04%

book1_python-for-beginners's People

Contributors

visualize-ml avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

book1_python-for-beginners's Issues

Book_1_Ch_10__聊聊可视化-Page15

图15中的代码运行时会报错,错误信息如下:
错误

我尝试自己谷歌了下解决这个问题,但是没能解决。

Cheers,
94mu.

PDF 目录

这一系列书生成的 PDF 似乎不包含 PDF 目录。编译的时候自动生成目录应该是很直接的(如果是 LaTeX 写,应该就是加上 bookmark 宏包。此外我也不清楚是否加上了 hyperref 宏包,没注意到 PDF 中是否有超链接)。

当然软件编译的 PDF 如果没有经过特殊混淆,自动生成 PDF 目录也不麻烦,例如用 pdf.tocgen,只是如果在编译期能自动生成,读者就没必要事后处理了。

Bk1_Ch11,关于课后作业和代码的问题

问题

  1. 这一章,讲散点图的地方,没有讲DataFrame格式的data_frame数据要怎么编,导致无法画鸢尾花数据的散点图
  2. 画等高线的地方,除了matplotlib,plotly,电子书中并没有给示例代码,所以无法作图
  3. 示例代码中pio.kaleido.scope.default_format = "svg"是会报错的:'NoneType' object has no attribute 'default_format'
    image
  4. 根据Bk1_Ch11_01.ipynb导入sns中的鸢尾花数据库iris_sns = sns.load_dataset("iris") ,也会有问题,因此下面的代码无法运行:
    image.png

Bk1_Ch07_01,课后习题答案相关问题

Q3. 输入一个数字并将其转换为整数,如果输入的不是数字,则提示用户重新输入直到输入数字为止。

您给的答案是:

while True:
    try:
        num = int(input("请输入一个数字:"))
        break
    except ValueError:
        print("输入有误,请重新输入!")

print("输入的数字是:", num)

但是如果输入的数字是小数,则获得的是小数的字符串,如'3.14',但直接用int()也会产生ValueError,无法转化为小数,因此这个答案的bug是无法转化小数为整数
我的答案是:

def f():
    a=input("please input a number:")
    try:
        b=float(a)
        c=int(b)
        print(c)
    except:
        f()

f()

用了函数的方法来实现满足条件

Q4. 求 100 以内的素数。

您给的答案是:

prime_list = []

for num in range(2, 101):
    for i in range(2, num):
        if num % i == 0:
            break
    else:
        prime_list.append(num)

print(prime_list)

这里面出现了for else的组合,但是对应电子书章节没有介绍这个逻辑

通过查阅,知道如果for循环没有被break强制退出,就会执行else,否则不会执行
此处参考了网络解答:https://blog.csdn.net/weixin_48728769/article/details/123796020

Q5. 请用至少两种不同办法计算1-100中奇数之和。

此处,除了ginger老师的方法,我想到可以用对2取余来乘以原来的数,如果是奇数则余数为1,否则为0,用来选择此数是否用来求和,代码如下:

# 请用至少两种不同办法计算 1-100 中奇数之和
result=0
i=0
while i<=100:
    result+=(i % 2)*i
    i+=1
print(result)

此处表述不完整

Book_1_Topic_1.01,第5页
“鸢尾花书”的《可视之美》一 册将
后面就没有文字了

Book_1_Ch_07__Python控制结构-Page9-图15

图15中的代码原意是”使用zip()计算向量内积“,但代码中并没有出现zip函数,应该是这段代码:

”for i in range(len(a)):
dot_product += a[i] * b[i]“
写错了。

Cheers,
94mu.

CH14 Numpy

image 最后三个元素的取法,似乎有误

Book_1_Ch_13__聊聊NumPy PDF文字有误

姜老师好!
Page 5 13.3生成数列中numpy.linspace的说明里
“例如,numpy.linspace(1, 10, 6) 生成一个等间距数列 [1, 3.25, 5.5, 7.75, 10]。”
应为“例如,numpy.linspace(1, 10, 5) 生成一个等间距数列 [1, 3.25, 5.5, 7.75, 10]。”

book1.chapter7 图1.5 不是用zip实现的

原文:

# 计算向量内积
# 定义向量a和b
a = [1, 2, 3, 4, 5] 
b = [6, 7, 8, 9, 0]
# 初始化内积为0 
dot_product = 0
# 使用for循环计算内积
for i in range(len(a)):
    dot_product += a[i] * b[i]
# 打印内积
print("向量内积为:", dot_product)

我猜你想说:

v1 = [1, 2, 3, 4, 5]
v2 = [6, 7, 8, 9, 0]

dp = 0

for c1, c2 in zip(v1, v2):
    dp += (c1 * c2)
    
print(dp)

Book_1_Ch_02__JupyterLab__编程不难-Page6-表2

书中原文是:
“esc -> M : 在按下esc进入编辑模式后,将当前cell从代码markdown转成文本”

我的理解是这句话后面是不是应该改成:
“将当前cell从代码转成文本markdown”?

如果理解不对,您直接忽略就好。另外非常感谢您写的这套书,受益匪浅,十分感谢!

Book_1_Ch_05__Python数据类型-Page8-图7

图7中:
“ #指定步长2,取出第0,2,4,6
print(greeting_str[::2])”
因为greeting_str的长度为11,所以这段代码不仅会取出第0,2,4,6,还会取出第8和第10;

Cheers,
94mu.

Book_1_Ch_08__Python函数-Page2

第三段”再举个几例子,很多函数都返回具体值,比如len() 返回list 元素个数,range() 生成一个可以用在for 循环的整数序列,list() 可以将。“

这一段最后”list()可以将。“没有写完。

Cheers,
94mu.

Book_1_Ch_01__聊聊巨蟒__编程不难-Page5-语言表述的问题

最后一段中“这是学 Python 必须避免”为病句,可以改成“这是学 Python 所必须避免的”。

另外,原段落是这样:

大家学 Python 时,一定要吸取英语教育的教训。(很多人)学了十几年的哑巴英语,原因就是只关注词汇、语法、应试,而不是利用语言进行口头、书面交流。这是学 Python 必须避免。()建议大家在学 Python 编程的时候,一定要抱着极强的“功利心 ”——立刻开始 coding、debugging!

感觉主语有点杂糅(省略主语的情况下又换了主语),可能换一换表达会更流畅。比如:

在学习 Python 的过程中,大家一定要吸取英语教育的教训。很多人之所以在学了十几年的英语之后仍然不会说,就是因为他们只注重词汇、语法和应试,而没有真正把语言用起来,进行口头和书面交流。前车可鉴,在学习 Python 时,大家不妨“功利”一些,边学边练——在学习中就马上开始编码和调试(coding 和 debugging)。

代码运行不通过

plt.scatter(np.arange(n), a_array)

# 添加标题和坐标轴标签
plt.title('Arithmetic Progression')
plt.xlabel('Index, $n$')
plt.ylabel('Value, $a_n$')

# 显示图形
plt.show()

报错NameError: name 'a_array' is not defined

Book_1_Ch_16__NumPy数组变形_Page3

一维数组 → 列向量
如图 2所示,利用 numpy.reshape(a, (1, -1)),我们可以把一维数组 numpy.arange(-7, 7+1) 转
化为形状为 (15, 1) 的二维数组,也称列向量,即 15 × 1 矩阵。

此处应为 numpy.reshape(a, (-1, 1)) 才可以把 shape 转为(15, 1)

Book_1_Ch_13__聊聊NumPy-Page5 13.3生成数列

numpy.linspace(start, stop, num, endpoint)。生成等间距数列,从起始值 start 开始,到结束值
stop 结束,num 指定数列的长度 (元素的个数),默认为 50。endpoint 参数指定是否包含结束
值。例如,numpy.linspace(1, 10, 6) 生成一个等间距数列 [1, 3.25, 5.5, 7.75, 10]。
修改为**[ 1. , 2.8, 4.6, 6.4, 8.2, 10. ] **

Book_1_Ch_02__JupyterLab,关于import的错误

本课的习题是:从零开始复刻 Bk1_Ch2_01.ipynb

问题1:

但是在导入包的时候,因为numpy的版本不对
通过网络查询得知:https://blog.csdn.net/weixin_47001721/article/details/110354183
导致不能正常引入plotly.express模块,报错:plotly express requires pandas to be installed.

措施1:

替换numpy版本为1.19.3,中途遇到的问题,如果没有在jupyterlab的kernal sessions 终止掉,就会导致pip uninstall失败,从而产生一个奇怪的残留包,命名前缀为“~”,
从而导致这样的warning:WARNING: Ignoring invalid distribution -umpy (e:\anaconda\lib\site-packages)

问题2:

替换numpy版本后,matplotlib的版本又和numpy不兼容,导致matplotlib的导入错误

措施2:

折中一下,换成numpy==1.21,又会产生一些warning: warnings.warn("loaded more than 1 DLL from .libs:"

问题3

3.2的动态图,都无法通过运行展示,应该是plotly.express模块没有正确导入的原因

总结

anaconda的环境管理,python的安装包管理,希望ginger老师可以新增教程,感谢万分!

Book_1_Ch_13__聊聊NumPy__编程不难-Page 2-Xarray库的表述问题

具体位置:13.1 什么是Numpy?-- 章节内的第三段。
表述库的话,应该注意大小写,如 NumPy 这样。所以,【此外,如果大家需要处理有标签、多维数组数据的话,推荐使用 xarray。】这里的xarray,修改为Xarray,感觉更好一些。

Book_1_ch_01 1.2python?巨蟒?

不是什么大的错误,是表述上有问题,“这就是为什么鸢尾花书系列会选择Python作为编成语言的原因”,应该是“这就是为什么...”或者“这就是...的原因”比较通顺。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.