
ǰÑÔ
numpy¶ÔpythonµÄÒâÒå·Ç·²£¬ÔÚÊý¾Ý·ÖÎöÓë»úÆ÷ѧϰÁìÓòΪpythonÁ¢ÏÂÁ˺¹Âí¹¦ÀÍ¡£ÏÖÔÚÓÃpython¸ãÊý¾Ý·ÖÎö»ò»úÆ÷ѧϰ¾³£Ê¹ÓõÄpandas¡¢matplotlib¡¢sklearnµÈ¿â£¬¶¼ÐèÒª»ùÓÚnumpy¹¹½¨¡£ºÁ²»¿äÕŵØËµ£¬Ã»ÓÐnumpy£¬python½ñÌìÔÚÊý¾Ý·ÖÎöÓë»úÆ÷ѧϰÁìÓòÖ»ÄÜÊÇ×½½ó¼ûÖâ¡£
ʲôÊÇÒ»ÃźõÄÊý¾Ý·ÖÎöÓïÑÔ
Êý¾Ý·ÖÎöÃæÏòµÄÊý¾Ý´ó¶àÊýÊǶþά±í¡£Ò»ÃźõÄÊý¾Ý·ÖÎöÓïÑÔ£¬Ê×ÏÈÐèÒªÄܹ»Ö±½ÓÓиöÊý¾Ý½á¹¹´æÏÂÕâ¸ö¶þά±í£¬È»ºóÒªÅäÉÏÒ»Ì׳ÉÊìµÄÀàSQLµÄÊý¾Ý²Ù×÷½Ó¿Ú£¬×îºóÒªÓÐÒ»Ì׺ÃÓõĿÉÊÓ»¯¹¤¾ß¡£RÓïÑÔ¾ÍÊÇÒ»¸ö¼«ºÃµÄµä·¶£ºÓÃÄÚÖõÄdata.frame½á¹¹×öÊý¾ÝµÄ´æ´¢;data.frame±¾ÉíÌṩ×㹻ǿ´óµÄÊý¾Ý²Ù×÷ÄÜÁ¦£¬ÁíÓÐdplyr¡¢tidyr¡¢data.table¡¢plyr¡¢reshape2µÈ¿âÌṩ¸üºÃÓøü¸ßЧµÄÊý¾Ý²Ù×÷ÄÜÁ¦;ÔÚ»æÍ¼ÉÏ£¬³ýÁË»ù±¾µÄplot¹¦ÄÜÍ⣬»¹ÌṩÁËggplot2ÕâÑùÒ»Ì×ÓÅÑŵĻæÍ¼ÓïÑÔ£¬»¹Í¨¹ýhtmlwidget¿âÓëjavascript¸÷ÖÖ»æÍ¼¿â½¨Á¢Á˽ôÃܵÄÁªÏµ£¬ÈÿÉÊÓ»¯µÄ¶¯Ì¬Õ¹Ê¾Ð§¹û¸ü½øÒ»²½¡£ExcelÒ²ÊÇÒ»¸ö¼«ºÃµÄÀý×Ó£¬Óе¥Ôª¸ñÕâÖÖÁé»îµÄ½á¹¹ÎªÊý¾Ý´æ´¢×öÖ§³Å£¬ÓдóÁ¿µÄº¯ÊýʵÏÖÁé»îµÄ²Ù×÷£¬Ò²ÓÐÇ¿´óµÄ»æÍ¼ÏµÍ³¡£
pythonĿǰÔÚÊý¾Ý·ÖÎöÁìÓòÒ²ÒѾ¾ß±¸ÁËÏ൱¿É¹ÛµÄÄÜÁ¦£¬°üÀ¨pandas¿âʵÏÖµÄDataFrame½á¹¹£¬pandas±¾ÉíÌṩµÄÊý¾Ý²Ù×÷ÄÜÁ¦£¬matplotlibÌṩµÄÊý¾Ý¿ÉÊÓ»¯ÄÜÁ¦£¬¶øÕâÒ»Çж¼Àë²»¿ªnumpy¿â¡£
ʲôÊÇÒ»ÃźõĻúÆ÷ѧϰÓïÑÔ
Ò»°ãÀ´½²£¬Ò»ÃźõĻúÆ÷ѧϰÓïÑÔÔÚÊý¾Ý·ÖÎöÉÏÒ²Ò»¶¨ºÜ³ÔµÃ¿ª£¬ÒòΪÊý¾Ý·ÖÎöÍùÍùÊÇ»úÆ÷ѧϰµÄ»ù´¡¡£µ«ÊÇ»úÆ÷ѧϰµÄÒªÇó¸ü¸ß£¬ÒòΪÔÚÄ£ÐÍѵÁ·½×¶ÎÍùÍùÐèÒª½ÏΪ¸´ÔӵIJÎÊý¹À¼ÆÔËË㣬Òò´ËÓïÑÔÐèÒª¾ß±¸½ÏÇ¿µÄ¿ÆÑ§¼ÆËãÄÜÁ¦¡£¿ÆÑ§¼ÆËãÄÜÁ¦£¬×îºËÐĵľÍÊǾØÕóÔËËãÄÜÁ¦¡£¹ØÓÚ¾ØÕóÔËËãÄÜÁ¦£¬ÕâÆªÎÄÕ¶Ը÷ÖÖÓïÑÔÓкܺõıȽϡ£
Èç¹ûûÓÐnumpy£¬pythonÄÚ²¿Ö»ÄÜÓÃlist»òarrayÀ´±íʾ¾ØÕó¡£¼ÙÈçÓÃlistÀ´±íʾ[1,2,3]£¬ÓÉÓÚlistµÄÔªËØ¿ÉÒÔÊÇÈκζÔÏó£¬Òò´ËlistÖÐËù±£´æµÄÊǶÔÏóµÄÖ¸Õ룬ËùÒÔÐèÒªÓÐ3¸öÖ¸ÕëºÍÈý¸öÕûÊý¶ÔÏ󣬱ȽÏÀË·ÑÄÚ´æºÍCPU¼ÆËãʱ¼ä¡£pythonµÄarrayºÍlist²»Í¬£¬ËüÖ±½Ó±£´æÊýÖµ£¬ºÍCÓïÑÔµÄһάÊý×é±È½ÏÀàËÆ£¬µ«ÊDz»Ö§³Ö¶àά£¬±í´ïÐÎʽºÜ¼òª£¬Ð´¿ÆÑ§¼ÆËãµÄËã·¨ºÜÄÑÊÜ¡£numpyÃÖ²¹ÁËÕâЩ²»×㣬ÆäÌṩµÄndarrayÊÇ´æ´¢µ¥Ò»Êý¾ÝÀàÐ͵ĶàάÊý×飬ÇÒ²ÉÓÃÔ¤±àÒëºÃµÄCÓïÑÔ´úÂ룬ÐÔÄÜÉϵıíÏÖҲʮ·Ö²»´í¡£
python×îÁ÷ÐеĻúÆ÷ѧϰ¿âsklearn¹¹½¨ÔÚnumpyÖ®ÉÏ£¬ÌṩÁ˸÷ÖÖ±ê×¼»úÆ÷ѧϰģÐ͵ÄѵÁ·ÓëÔ¤²â½Ó¿Ú£¬ÆäÖÐÄ£ÐÍѵÁ·½Ó¿ÚµÄÄÚ²¿ÊµÏÖÊÇ»ùÓÚnumpy¿âʵÏֵġ£±ÈÈçºÜ³£¼ûµÄÏßÐԻعéÄ£ÐÍ£¬²ÎÊý¹À¼Æµ÷ÓõÄÊÇnumpy.linalg.lstsqº¯Êý¡£
numpyµÄºËÐĽṹ£ºndarray
ÒÔÏÂÄÚÈÝժ¼×ÔÓÃPython×ö¿ÆÑ§¼ÆËã

ndarrayÊÇnumpyµÄºËÐÄÊý¾Ý½á¹¹¡£ÎÒÃÇÀ´¿´Ò»ÏÂndarrayÈçºÎÔÚÄÚ´æÖд¢´æµÄ£º¹ØÓÚÊý×éµÄÃèÊöÐÅÏ¢±£´æÔÚÒ»¸öÊý¾Ý½á¹¹ÖУ¬Õâ¸ö½á¹¹ÒýÓÃÁ½¸ö¶ÔÏó£¬Ò»¿éÓÃÓÚ±£´æÊý¾ÝµÄ´æ´¢ÇøÓòºÍÒ»¸öÓÃÓÚÃèÊöÔªËØÀàÐ͵Ädtype¶ÔÏó¡£

Êý¾Ý´æ´¢ÇøÓò±£´æ×ÅÊý×éÖÐËùÓÐÔªËØµÄ¶þ½øÖÆÊý¾Ý£¬dtype¶ÔÏóÔòÖªµÀÈçºÎ½«ÔªËصĶþ½øÖÆÊý¾Ýת»»Îª¿ÉÓõÄÖµ¡£Êý×éµÄάÊý¡¢´óСµÈÐÅÏ¢¶¼±£´æÔÚndarrayÊý×é¶ÔÏóµÄÊý¾Ý½á¹¹ÖС£
stridesÖб£´æµÄÊǵ±Ã¿¸öÖáµÄϱêÔö¼Ó1ʱ£¬Êý¾Ý´æ´¢ÇøÖеÄÖ¸ÕëËùÔö¼ÓµÄ×Ö½ÚÊý¡£ÀýÈçͼÖеÄstridesΪ12,4£¬¼´µÚ0ÖáµÄϱêÔö¼Ó1ʱ£¬Êý¾ÝµÄµØÖ·Ôö¼Ó12¸ö×Ö½Ú£º¼´a[1,0]µÄµØÖ·±Èa[0,0]µÄµØÖ·Òª¸ß12¸ö×Ö½Ú£¬ÕýºÃÊÇ3¸öµ¥¾«¶È¸¡µãÊýµÄ×Ü×Ö½ÚÊý;µÚ1ÖáϱêÔö¼Ó1ʱ£¬Êý¾ÝµÄµØÖ·Ôö¼Ó4¸ö×Ö½Ú£¬ÕýºÃÊǵ¥¾«¶È¸¡µãÊýµÄ×Ö½ÚÊý¡£
ÒÔÏÂÄÚÈÝ×ܽá×ÔNumpy¹Ù·½ÎĵµNumpy basics
¹ØÓÚndarrayµÄË÷Òý·½Ê½£¬ÓÐÒÔϼ¸¸öÖØµãÐèÒª¼Çס£º
ËäÈ»x[0,2] = x0£¬µ«ÊÇǰÕßЧÂʱȺóÕ߸ߣ¬ÒòΪºóÕßÔÚÓ¦ÓõÚÒ»¸öË÷ÒýºóÐèÒªÏÈ´´½¨Ò»¸ötemporary array£¬È»ºóÔÙÓ¦Óõڶþ¸öË÷Òý£¬×îºóÕÒµ½Ä¿±êÖµ¡£
·ÖƬ²Ù×÷²»»áÒý·¢copy²Ù×÷£¬¶øÊÇ´´½¨ÔndarrayµÄview;ËûÃÇËùÖ¸ÏòµÄÄÚ´æÊÇÍ¬Ò»Æ¬ÇøÓò£¬ÎÞÂÛÊÇÐÞ¸ÄÔndarray»¹ÊÇÐÞ¸Äview£¬¶¼»áͬʱ¸Ä±ä¶þÕßµÄÖµ¡£
index arrayºÍboolean index·µ»ØµÄÊÇcopy£¬²»ÊÇview¡£
¹ØÓÚÉÏÃæÁÐ¾ÙµÄ·ÖÆ¬²Ù×÷²»»áÒý·¢copy²Ù×÷£¬ÎÒÃÇÀ´½øÒ»²½Ì½ÌÖһϡ£ÏÈ¿´Ò»ÏÂnumpyµÄÀý×Ó£º

ÔÙÀ´¿´Ò»ÏÂRµÄÀý×Ó£º

¿ÉÒÔ¿´µ½numpyºÍRÔÚ¾ØÕóµÄ·ÖƬ²Ù×÷Óв»Í¬µÄÉè¼ÆÀíÄÔÚRÀï·ÖƬ²Ù×÷»áÒýÆðÊý¾ÝµÄ¸´ÖÆ£¬ÔÚnumpyÀï²»»á¡£ÊÂʵÉÏ£¬RµÄÉè¼ÆÀíÄîºÜ¶àʱºò¿ÉÒÔÓÃÒ»¾ä»°À´¸ÅÀ¨£ºcopy on modify£¬Ò»µ©¶ÔÊý¾ÝÓÐÐ޸ľͻáÒýÆðÄÚ´æÉϵĸ´ÖƲÙ×÷£¬Õâ¸ö²Ù×÷Òª»¨²»ÉÙʱ¼ä£¬Òò´Ë¾³£»áÌýµ½ÈËÃDZ§Ô¹R·ÑÄÚ´æÇÒËÙ¶ÈÂý¡£ËùÒÔ£¬ÎÒÃÇ¿ÉÒÔ¿´µ½numpyÔÚ´¦ÀíÕâ¼þÊÂÇéÉÏÃ÷ÏÔÒªÓÃÐĺܶ࣬¸ù¾Ý³¡¾°Éè¼ÆÁ˲»Í¬µÄ²ßÂÔ£¬²»ÊǼòµ¥µØ²ÉÓÃRµÄÒ»µ¶Çз½Ê½¡£µ±È»£¬ÕâÒ²´øÀ´ÁËһЩѧϰ³É±¾£¬ÐèÒª¶Ônumpy×ã¹»ÊìϤ²ÅÄܱÜÃâ²È¿Ó¡£RÉçÇøÀï¶Ôcopy on modifyµÄÕÜѧҲÓÐÚ¸²¡²¢ÔÚŬÁ¦¸Ä±ä£¬±ÈÈçͬÊÇdata.frame²Ù×÷¿âµÄdata.tableºÍdplyr£¬data.tableÐÔÄܱÈdplyr¸ßºÜ¶à£¬²¿·ÖÔÒòÒ²ÊÇdata.table¹æ±ÜÁËcopy on modifyµÄ·½Ê½¡£
Structured Array
¸ù¾ÝnumpyµÄ¹Ù·½Îĵµ£¬¶¨Òå½á¹¹»¯Êý×éÓÐËÄÖÖ·½Ê½¡£±¾ÎIJÉÓÃ×ֵ䷽·¨£¬Í¨¹ý¶¨ÒåÒ»¸ödtype¶ÔÏóʵÏÖ£¬ÐèÒªÖ¸¶¨µÄ¼üÖµÓÐnamesºÍformats¡£

ÎÒÃÇÓÃIPythonµÄ¼ÆÊ±º¯Êý¿´Ò»ÏÂÌáÈ¡Êý¾ÝµÄЧÂÊ£º

Êä³ö½á¹ûÈçÏ£º
The slowest run took 46.83 times longer than the fastest.
This could mean that an intermediate result is being cached.
1000000 loops, best of 3: 153 ns per loop
The slowest run took 34.34 times longer than the fastest.
This could mean that an intermediate result is being cached.
10000000 loops, best of 3: 174 ns per loop
The slowest run took 13.00 times longer than the fastest.
This could mean that an intermediate result is being cached.
1000000 loops, best of 3: 1.08 ¦Ìs per loop
The slowest run took 9.84 times longer than the fastest.
This could mean that an intermediate result is being cached.
1000000 loops, best of 3: 412 ns per loop |
´ÓÉÏÃæµÄ½á¹û£¬ÎÒÃÇ·¢ÏÖ£¬»ñÈ¡ÏàͬµÄÊý¾ÝÓжàÖÖ²Ù×÷£¬²»Í¬µÄ²Ù×÷ÐÔÄܲî±ðºÜ´ó¡£ÎÒ×öÁËÒ»¸öÍÆ²â£¬´¿´âÊÇϹ²Â£ºnumpyÔÚ½¨Á¢½á¹¹»¯Êý×éʱ£¬½«Õû¸ö½á¹¹ÌåÁ¬Ðø´æ´¢ÔÚÒ»Æð£¬¼´°´Ðд洢£¬Òò´Ëa[1]µÄËÙ¶È×î¿ì;µ«ÊÇΪÁ˱£Ö¤ÌáÈ¡ÁеÄЧÂÊ£¬¶Ôa['name']½¨Á¢ÁËË÷Òý£¬Òò´Ëa['name']µÄЧÂÊÒ²ºÜ¸ß;µ«ÊÇÕâ¸öË÷ÒýÖ»¶ÔÕû¸öaÆð×÷Óã¬Èç¹ûÊäÈëÖ»ÓÐaµÄÒ»²¿·Ö£¬ÈÔÈ»ÐèÒª±éÀúÕû¸öa£¬È¥ÌáÈ¡³ö¶ÔÓ¦µÄÊý¾Ý£¬Òò´Ëa[1]['name']±Èa['name'][1]µÄЧÂʲîºÜ¶à¡£
ʵÀý
»ùÓÚnumpy¹ýÂ˶¶¶¯ÓëÌî²¹
ʱ¼äÐòÁÐÊý¾Ý¾³£»á·¢ÏÖÁ½ÖÖÇé¿ö£ºÒ»ÖÖÊǶ¶µÃÌØ±ðÀ÷º¦£¬ËµÃ÷Êý¾Ý²»Îȶ¨²»¿ÉÐÅ£¬Ö§³ÅÕâ¸ö½á¹ûµÄÊý¾ÝÁ¿²»¹»;ÁíÒ»ÖÖÊÇÒ»¶¯²»¶¯µÄÒ»ÌõÖ±Ïߣ¬ÕâÍùÍùÊÇËã·¨Ìî³ä³öÀ´µÄĬÈÏÖµ£¬²»ÊÇʵ¼ÊÖµ¡£ÕâЩÊý¾Ý¶ÔÓÚÍÚ¾òÀ´ËµÊÇÔëÒô£¬Ó¦¸Ã¹ýÂ˵ô¡£ÎÒÃÇʹÓÃnumpyÀ´Íê³ÉÕâ¸öÈÎÎñ¡£¶¶¶¯µÄÌØµãÊÇÆµ·±Ìø¶¯£¬¼´Ò»½×²î·ÖÓкܶàÖµ¾ø¶ÔÖµ±È0´óºÜ¶à£¬ÄÇôÎÒÃǽ«ÕâÐ©Ìø¶¯µÄµã×¥³öÀ´£¬Í³¼ÆÏÂÕâЩµãÖ®¼äµÄÇø¼ä³¤¶È£¬Èç¹ûÇø¼ä³¤¶È¹ýС£¬ÈÏΪÊǶ¶¶¯¹ý¶à¡£Ìî²¹µÄÌØµãÊÇÊýÖµ³¤ÆÚ²»±ä£¬¼´Ò»½×²î·ÖÓкܶàֵΪ0£¬ÄÇôÎÒÃÇͳ¼ÆÒ»ÏÂÁ¬ÐøÎª0µÄÇø¼ä³¤¶È·Ö²¼£¬Èç¹ûÇø¼ä³¤¶È¹ý³¤£¬±ÈÈçÁ¬ÐøÌî²¹ÁË1Сʱ£¬»òÕß³öÏÖ¶à¸öÌî²¹ÁË30·ÖÖÓµÄÇø¼ä£¬ÎÒÃÇÈÏΪÊÇÌî²¹¹ý¶à¡£
ÎÒÃÇÐèÒª¶ÔÌøµã½øÐж¨Ò壺һ½×²î·ÖµÄ¾ø¶ÔÖµ³¬¹ýdev_thresh£¬Ò»½×²î·Ö/max(»ù×¼1£¬»ù×¼2)µÄ¾ø¶ÔÖµ³¬¹ýratio_thresh¡£


»ùÓÚnumpyµÄ¾Ö²¿Ç÷ÊÆÄâºÏ
ÓÃÏßÐԻعé¿ÉÒԵõ½Ê±¼äÐòÁеÄÇ÷ÊÆ¡£

¶ÂµãÅбð
½»Í¨Êý¾Ý±È½Ï¸´ÔÓ£¬²»´¿´âÊÇʱ¼äÐòÁÐÎÊÌ⣬¶øÊÇʱ¿ÕÊý¾Ý£¬ÐèҪͬʱ¿¼ÂÇʱ¼ä¹ØÏµºÍ¿Õ¼ä¹ØÏµ¡£±¾½Ú½éÉÜÒ»¸ö¾µäÌØÕ÷µÄÌáÈ¡£º¶ÂµãÅбð¡£
¼ÙÉèÎÒÃǿռäÉÏÓÐ5¸ölink£¬ÉÏÓÎ2¸ö£¬×ÔÉí1¸ö£¬ÏÂÓÎ2¸ö;¹Û²ì5¸öʱ¼äµãµÄÓµ¶Â״̬¡£Åжϵ±Ç°linkÊDz»ÊǶµ㡪¡ª¼´×ÔÉíÊÇÍØÆËÖеÚÒ»¸ö·¢ÉúÓµ¶ÂµÄµã;·¢ÉúÓµ¶Âºó£¬Óµ¶ÂÊÇÀ©É¢µÄ¡£

 |