Anaconda 環境構築 MAC tensorflow

ダウンロード

下記サイトからダウンロードする 無料版はindividual www.anaconda.com

f:id:happy_teeth_ago:20200722143234p:plain

インストールしたらAnaconda Navigatorを起動

アイコン

f:id:happy_teeth_ago:20200722143913p:plain

Navigator

f:id:happy_teeth_ago:20200722143925j:plain
Navigator

ターミナル起動したら tensorflowのインストールと確認

pip install tensorflow


python

//pytonの入力画面になる。
//importできればOK 出来ていないとエラーがでる
>>> import tensorflow
>>>   //この状態になればOK

//pythonの実行環境を終了するにはexit()と入力する
exit() 

次回からの起動方法

conda info -e

//===
環境が表示される

仮想環境を起動する
conda activate 環境名

% conda activate tf-py37

//ターミナルの先頭に利用している環境名が、カッコで表示される
(tf-py37) % conda activate tf-py37

//仮想環境を終了するときは
conda deactivate

Anaconda コマンド一覧(随時追加します)

Anacondaの環境の一覧を見る

conda info -e

//======
base                  *  /opt/anaconda3
tf220                    /anaconda3/envs/tf220

仮想環境の切り替え

activate 環境名

//環境切り替え
 % conda activate tf220

//condaの環境を確認
 conda info -e

//====変更になっている
# conda environments:
#
base                     /opt/anaconda3
tf220                 * /opt/anaconda3/envs/tf220

laravel 小モデルから親モデル取得

モデルのER図

f:id:happy_teeth_ago:20200722104409j:plain

子供のMaterialControllerに記載する場合

class MaterialsController extends Controller{

   public function index(Request $request)
    {

//リクエストスコープからidを取得
        $id = $request->id;

//Materialテーブルの group_id を取得 where は第一引数(DBカラム名)と第二引数(変数)と同じものを絞り込んでくれる
        $groupId = Materials::where('group_id', $id);

//関連づいている親のidを取得すれば、親モデルに関連づいているすべてのデータが取得できる
        $groups = Groups::where('id',$groupId);

//変数 $groups に詰め込んでViewに返してあげる
        return view('materials.index',compact('groups'));
    }

WordPress WordPressループまとめ

WordPressループ

メインループとサブループがある。

WordPressでは、メインループが必ず1回回ります。
自分で表示したい、カテゴリ一覧とかnewsとかは、サブループで回します。

コードで理解するほうが早いので見てみましょう。

//これがWordPressループ if (have_posts( )):でnilチェック
            <?php if (have_posts( )): ?>

//postの数だけ繰り返す
                <?php while (have_posts(  )): the_post() ?>

                <div class="col-md-4">

//post IDは idの設定くらいしか使わない。
                    <article id="post-<?php the_ID(); ?>" <?php post_class('news'); ?>>
                        <div class="news_pic">

//記事へのリンクは the_permalink( )
                            <a href="<?php the_permalink( ); ?>">

//記事の画像(サムネイル)を表示
                            <?php if (has_post_thumbnail()): ?>
                                <?php the_post_thumbnail( 'medium'); ?>
                            <?php else: ?>

//画像がなかったとき noimageの画像を表示する
                                <img src="<?php echo get_template_directory_uri() ; ?>/assets/img/common/noimage_600x400.png" alt="" >
                            <?php endif; ?>
                            </a>
                        </div>
                        <div class="news_meta">

//記事のカテゴリー名を表示 カテゴリー別に表示したい場合 new WP_Query下記を参照のこと
                          <?php the_category(); ?>
                            <time class="news_time" datetime="<?php the_time('Y-m-d'); ?>"><?php the_time('Y年m月d日'); ?></time>
                        </div>

//記事へのリンクは the_permalink( )
                        <h2 class="news_title"><a href="<?php the_permalink( ); ?>"><?php the_title(); ?></a></h2>
                        <div class="news_desc">

//抜粋を表示 下記参照
                            <p><?php the_excerpt(); ?></p>
                            <p><a href="<?php the_permalink(); ?>">[続きを読む]</a></p>
                        </div>
                    </article>
                </div>

                <?php endwhile; ?>
            <?php endif; ?>

抜粋とは? excerpt()

管理画面から入力する、記事のまとめのこと

記事が長い場合、概略をまとめておく。 f:id:happy_teeth_ago:20200721142026j:plain:w300

サブループ WP_Queryを使う

ポイント

1)WP_Queryの戻値を変数へ詰め込む

2) WP_Queryを実行

3) loopの最後に、wp_reset_postdataを実行する

メインループと間違えるためエラーがでる。
SQLを発行していると考えると良い

        <div class="row courses_row">

        <?php

//サブループを回す
            $course_query = new WP_Query(
            array(

//投稿タイプ
                'post_type'      => 'post',
//カテゴリーはcourse
                'category_name' => 'course',
//1ページあたり6記事
                'posts_per_page' => 6,
            )
        );
        ?>

//メインループだと have_posts()
//サブクエリを使うので $course_query->have_posts()となる
            <?php if ( $course_query->have_posts() ) : ?>

//サブクエリのpostを回す
            <?php    while ( $course_query->have_posts() ) : $course_query->the_post(); ?>

            <div class="col-lg-4 course_col">

//loopの中は、the_post() で大丈夫
//別のテンプレートファイルに切り出しています
                <?php get_template_part( 'course-loop'); ?>
            </div>

//絶対に必要!
                <?php wp_reset_postdata(); ?>
                <?php endwhile; ?>
            <?php endif; ?>
        </div>

PythonのCounterでリストの各要素の出現個数をカウント

//入力値をlistにする
//入力値は例えば
// 2229
// 5566
    input_array = list(input())
    num = collections.Counter(input_array)
    
# print(input_array)
#     print(num)
#     ['7', '7', '7', '7']

//これは便利
# Counter({'7': 4})

({'7': 4})は辞書型なので、valueを取得して そこで正誤判断

4回出現していれば4カード

Python TypeError: 'int' object is not iterable

TypeError: 'int' object is not iterable

繰り返しに使えるオブジェクトではないということ

for in などの配列から1つづつオブジェクトを回すときに利用する

//ここがちがう
for i  in (days - campain + 1):
    i_campain = 0
    for j in range(campain):
        i_campain += days_list[i + j]
    campain_days.append(i_campain / campain)

print(campain_days)

正解はこう rangeで繰り返しを指定する

for i in range(days - campain + 1):
    i_campain = 0
    for j in range(campain):
        i_campain += days_list[i + j]
    campain_days.append(i_campain / campain)

print(campain_days)